2017-04-03 106 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

相關問題