我正在尝试使用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
答案 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”