yocto SDK krogoth cmake FindBoost not found



我正在尝试在 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”

最新更新