2017-04-03 251 views
1

我正在构建与Yocto/poky(morty分支)的系统。建立图像和SDK可以正常工作。stdint.h“没有这样的文件或目录”错误yocto sdk

我已经在一台机器(除了生成机器)上安装了SDK以交叉编译工具。

我已经加载了环境

source /opt/mydistro/2.2.1/environment-setup-cortexa7hf-neon-vfpv4-poky-linux-gnueabi 

建设有

arm-poky-linux-gnueabi-gcc test.cpp 

测试文件将失败,消息

/opt/mydistro/2.2.1/sysroots/x86_64-pokysdk-linux/usr/lib/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/6.2.0/include/stdint.h:9:26: fatal error: stdint.h: No such file or directory 
# include_next <stdint.h> 

编制有明确SYSROOT

arm-poky-linux-gnueabi-gcc test.cpp --sysroot=/opt/mydistro/2.2.1/sysroots/cortexa7hf-neon-vfpv4-poky-linux-gnueabi/ 

失败

... include/gnu/stubs.h:7:29: fatal error: gnu/stubs-soft.h: No such file or directory ... 

这是为什么不工作?什么不见​​了?

回答

2

好吧,你不能直接使用交叉编译器是由于SYSROOT-poising。见yocto built tool chain search path issue

因此,您应该始终使用$CC而不是直接使用交叉编译器。使用$CC不仅可以指定sysroot,还可以指定诸如-march=...,-mfloat-abi=...,-mtune=...等等(选项的确切数目取决于您正在构建的机器)。这应该解决了你所有的问题。

0

在我的情况下,一个解决方案来编译和链接我的例子是使用下面的命令:

arm-poky-linux-gnueabi-gcc --sysroot=/opt/mydistro/2.2.1/sysroots/cortexa7hf-neon-vfpv4-poky-linux-gnueabi/ -mfloat-abi=hard 
+0

我不知道为什么float-abi必须显式设置为hard。我的机器构建配置说TARGET_FPU =“硬”? – powerpete

相关问题