我正在尝试在 Yocto SDK 中找到在 krogoth 上扩展环境的提升库 (cmake(。
默认的 cmake Find_
find_package(Boost REQUIRED)
标准错误消息
Unable to find the requested Boost libraries.
Unable to find the Boost header files. Please set BOOST_ROOT to the root
directory containing Boost or BOOST_INCLUDEDIR to the directory containing
Boost's headers.
Call Stack (most recent call first):
CMakeLists.txt:3 (find_package)
以下是我的 conf/local.conf 的片段
IMAGE_INSTALL_append = " boost-dev"
IMAGE_INSTALL_append = " boost"
IMAGE_INSTALL_append = " kernel-devsrc"
MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += "kernel-module-hello"
KERNEL_MODULE_AUTO_lOAD += "hello-md"
LCHAIN_HOST_TASK_append = "${SDK_EXTRA_TOOLS}"
SDK_EXTRA_TOOLS = " nativesdk-cmake
我正在使用本机 cmake
auke@xenialxerus:~/workspace/beaglebone-dev/build$ which cmake
/home/auke/workspace/beaglebone-dev/poky-sdk/tmp/sysroots/x86_64-linux/usr/bin/
因为我:
source environment-setup-cortexa8hf-neon-poky-linux-gnueabi
在以下位置查找常用标头:
find ./tmp/sysroots/beaglebone/usr/include/boost/
..
/tmp/sysroots/beaglebone/usr/include/boost/vmd/list/to_seq.hpp
./tmp/sysroots/beaglebone/usr/include/boost/vmd/list/to_tuple.hpp
./tmp/sysroots/beaglebone/usr/include/boost/vmd/to_list.hpp
./tmp/sysroots/beaglebone/usr/include/boost/vmd/empty.hpp
./tmp/sysroots/beaglebone/usr/include/boost/vmd/is_list.hpp
./tmp/sysroots/beaglebone/usr/include/boost/vmd/size.hpp
./tmp/sysroots/beaglebone/usr/include/boost/vmd/get_type.hpp
./tmp/sysroots/beaglebone/usr/include/boost/vmd/assert_is_identifier.hpp
./tmp/sysroots/beaglebone/usr/include/boost/vmd/is_number.hpp
..
就像二进制文件一样:
./tmp/sysroots/beaglebone/usr/lib/libboost_system-mt.a
./tmp/sysroots/beaglebone/usr/lib/libboost_iostreams.so.1.60.0
./tmp/sysroots/beaglebone/usr/lib/libboost_serialization-mt.a
./tmp/sysroots/beaglebone/usr/lib/libboost_date_time-mt.a
./tmp/sysroots/beaglebone/usr/lib/libboost_date_time.a
./tmp/sysroots/beaglebone/usr/lib/libboost_thread.so
./tmp/sysroots/beaglebone/usr/lib/libboost_signals-mt.a
./tmp/sysroots/beaglebone/usr/lib/libboost_date_time-mt.so
./tmp/sysroots/beaglebone/usr/lib/libboost_graph-mt.a
./tmp/sysroots/beaglebone/usr/lib/libboost_iostreams.so
./tmp/sysroots/beaglebone/usr/lib/libboost_regex.so
./tmp/sysroots/beaglebone/usr/lib/libboost_wserialization.so.1
有什么我可能忽略了什么吗?
问候奥克
你应该使用bitbake -c populate_sdk <image_name>
根据您的镜像生成SDK;
作为查找和下载工具链安装程序的替代方法, 如果您有 构建目录:
*使用bitbake元工具链。此方法要求您仍安装 通过单独安装和提取目标系统根。为 有关如何安装 sysroot 的信息,请参阅"提取 根文件系统"部分。
*使用 bitbake -c populate_sdk。这种方法具有显着意义 与以前的方法相比具有优势,因为它会产生工具链 包含与目标根匹配的系统根的安装程序 文件系统。
此外,使用变量TOOLCHAIN_HOST_TASK
添加更多包。
http://www.yoctoproject.org/docs/1.8/ref-manual/ref-manual.html
此变量列出了 OpenEmbedded 构建系统在以下情况下使用的包 构建包含跨开发环境的 SDK。这 此变量指定的包是工具链集的一部分,该工具链集 在 SDK 计算机上运行,每个包通常应具有 前缀"nativesdk-"。使用 bitbake -c 构建 SDK 时 populate_sdk ,在此设置默认的包列表 变量,但您可以将其他包添加到列表中。
例如
TOOLCHAIN_HOST_TASK += “nativesdk-libqt5core-dev”