yocto SDK krogoth cmake未找到FindBoost

时间:2017-08-23 13:37:02

标签: sdk cmake yocto

我正在尝试使用krogoth上的扩展环境在Yocto SDK中找到boost库(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

有什么我可能会忽略的吗?

对待Auke

1 个答案:

答案 0 :(得分:0)

你应该使用 bitbake -c populate_sdk <image_name>根据您的图片生成SDK;

  

作为查找和下载工具链安装程序的替代方法,   如果你有一个,你可以用两种方法之一构建工具链安装程序   构建目录:

     

*使用bitbake元工具链。此方法要求您仍然安装   目标sysroot通过单独安装和提取它。对于   有关如何安装sysroot的信息,请参阅&#34;提取   根文件系统&#34;部分。

     

*使用bitbake -c populate_sdk。这种方法有重要意义   优于以前的方法的优点,因为它导致工具链   包含与目标根匹配的sysroot的安装程序   文件系统。

此外,使用变量TOOLCHAIN_HOST_TASK添加更多包 http://www.yoctoproject.org/docs/1.8/ref-manual/ref-manual.html

  

此变量列出OpenEmbedded构建系统在何时使用的包   构建一个包含交叉开发环境的SDK。该   此变量指定的包是工具链集的一部分   在SDKMACHINE上运行,每个包通常应该有   前缀&#34; nativesdk - &#34;。使用bitbake -c构建SDK时   populate_sdk,在此设置默认的包列表   变量,但您可以将其他包添加到列表中。

e.g。

TOOLCHAIN_HOST_TASK += “nativesdk-libqt5core-dev”