微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用自定义 Yocto SDK 进行 Boost 交叉编译失败并显示“没有此类文件或目录”错误

如何解决使用自定义 Yocto SDK 进行 Boost 交叉编译失败并显示“没有此类文件或目录”错误

我获得了自定义 Yocto SDK,以便构建我创建的 C++ 应用程序以及该应用程序所依赖的第三方库。
我已经在 VM Ubuntu 16.04 上安装了 SDK。
我需要构建的第一个库是 boost。我用的版本。 1.64.
我每次都按照相同的步骤在 Yocto SDK 或认 arm 编译器上构建 boost。

$ . /opt/environment-setup-poky-linux-gnueabi
$ ./bootstrap.sh --with-libraries=filesystem,iostreams,program_options,regex,system --prefix=/home/user/Libs
$ nano ~/user-config.jam  where I place the following commands
$ using gcc : arm : /opt/sysroots/x86_64-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-g++ --sysroot= /opt/sysroots/arm-poky-linux-gnueabi ;                      
$ ./b2 install toolset=gcc-arm  link=shared threading=multi 

但是我总是收到以下错误

    gcc.compile.c++ bin.v2/libs/system/build/gcc-arm/release/threading-multi/error_code.o
In file included from /opt/sysroots/arm-poky-linux-gnueabi/usr/include/gnu/stubs.h:55,from /opt/sysroots/arm-poky-linux-gnueabi/usr/include/features.h:452,from /opt/sysroots/arm-poky-linux-gnueabi/usr/include/c++/8.2.0/arm-poky-linux-gnueabi/bits/os_defines.h:39,from /opt/sysroots/arm-poky-linux-gnueabi/usr/include/c++/8.2.0/arm-poky-linux-gnueabi/bits/c++config.h:508,from /opt/sysroots/amr-poky-linux-gnueabi/usr/include/c++/8.2.0/cstddef:49,from ./boost/config/compiler/gcc.hpp:165,from ./boost/config.hpp:39,from ./boost/system/config.hpp:13,from ./boost/system/error_code.hpp:14,from libs/system/src/error_code.cpp:16:
/opt/sysroots/arm-poky-linux-gnueabi/usr/include/gnu/stubs-32.h:7:11: Fatal error: gnu/stubs-soft.h: No such file or directory
 # include <gnu/stubs-soft.h>
       ^~~~~~~~~~~~~~~~~~

我假设未正确找到 sysroot。

当我尝试使用不包含 --sysroot 变量的 user-config.jam 时,出现错误

 gcc.compile.c++ bin.v2/libs/system/build/gcc-arm/release/threading-multi/error_code.o
In file included from ./boost/config.hpp:39,from libs/system/src/error_code.cpp:16:
./boost/config/compiler/gcc.hpp:165:10: Fatal error: cstddef: No such file or directory
 #include <cstddef>
          ^~~~~~~~~
compilation terminated.

环境设置中的 CC 变量包含以下内容

export CC="arm-poky-linux-gnueabi-gcc  -march=armv7ve  -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a7 --sysroot=$SDKTARGETSYSROOT"

我能做些什么来绕过这些错误或 SDK 有问题需要重建吗?

提前致谢

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。