gcc編譯報(bào)錯(cuò),fatal error: gnu/stubs-soft.h: No such file or directory問(wèn)題解決?。?/h1>
最近需要為客戶平臺(tái)編譯一個(gè)工具, 客戶提供了交叉編譯鏈過(guò)來(lái), 按照以往的編譯經(jīng)驗(yàn), 找到gcc所在的路徑,然后通過(guò)
make CROSS_COMPILE= gcc所在路徑即可, 但是報(bào)錯(cuò)了,提示 fatal error: gnu/stubs-soft.h: No such file or directory 。
具體如下:
ballack@ballack:~/test$ make TARGET=WL CROSS_COMPILE=/home/ballack/1.8.1/sysroots/i686-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-
make clean
make[1]: 正在進(jìn)入目錄 `/home/ballack/test'
rm -f *.o *.so *.a wl/exe/*.o wl/ppr/src/*.o shared/*.o shared/bcmwifi/src/*.o dhd/exe/*.o
make[1]:正在離開(kāi)目錄 `/home/ballack/test'
make test
make[1]: 正在進(jìn)入目錄 `/home/ballack/test'/home/ballack/1.8.1/sysroots/i686-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-gcc --sysroot=/home/ballack/1.8.1/sysroots/cortexa8hf-vfp-neon-poky-linux-gnueabi -Iinclude -Icommon/include -Ishared/bcmwifi/include -Iwl/exe/ -Iwl/ppr/include -Idhd/exe -g -Wall -DBCMWPA2 -DTARGETENV_android -DLINUX -Dlinux -DRWL_WIFI -DRWL_SOCKET -DRWL_DONGLE -DRWL_SERIAL -DBCMINTERNAL -DBCMDBG -DD11AC_IOTYPES -DPPR_API -DSR_DEBUG -DWLCNT -DWIFI_ACT_FRAME -DWLEXTLOG -DSERDOWNLOAD -DWLTEST -DWLBTAMP -DWLP2P -DWLMCHAN -DWLTDLS -DWLNDOE -DWLP2PO -DWLANQPO -DTRAFFIC_MGMT -DWL11ULB -DBT_WIFI_HANDOVER -DWLWNM -DWLBSSLOAD_REPORT -DWL_NAN -DWL_BTCDYN -DWLPFN -DWLPFN_AUTO_CONNECT -DWLC_HIGH -c -o wl/exe/wlu.o wl/exe/wlu.c
In file included from /home/ballack/1.8.1/sysroots/cortexa8hf-vfp-neon-poky-linux-gnueabi/usr/include/features.h:389:0,
from /home/ballack/1.8.1/sysroots/cortexa8hf-vfp-neon-poky-linux-gnueabi/usr/include/sys/types.h:25,
from include/typedefs.h:201,
from include/wlioctl.h:18,
from wl/exe/wlu.c:27:/home/ballack/1.8.1/sysroots/cortexa8hf-vfp-neon-poky-linux-gnueabi/usr/include/gnu/stubs.h:7:29: fatal error: gnu/stubs-soft.h: No such file or directory # include <gnu/stubs-soft.h>
^
compilation terminated.
make[1]: *** [wl/exe/wlu.o] 錯(cuò)誤 1make[1]:正在離開(kāi)目錄 `/home/ballack/test'
make: *** [make_wl] 錯(cuò)誤 2
查看對(duì)方提供的sdk編譯說(shuō)明, 才知道他們編譯之前需要source一個(gè)文件:
source /home/ballack/1.8.1/environment-setup-cortexa8hf-vfp-neon-poky-linux-gnueabi
查看文件內(nèi)容, 發(fā)現(xiàn) CC 是需要指定一系列參數(shù)的:
export SDKTARGETSYSROOT=/home/ballack/1.8.1/sysroots/cortexa8hf-vfp-neon-poky-linux-gnueabi
export CC="arm-poky-linux-gnueabi-gcc -march=armv7-a -mfloat-abi=hard -mfpu=neon -mtune=cortex-a8 --sysroot=$SDKTARGETSYSROOT"
所以直接使用arm-poky-linux-gnueabi-gcc -o test test.c 是不行的。
解決方法一:
source ./1.8.1/environment-setup-cortexa8hf-vfp-neon-poky-linux-gnueabi
注釋掉
#CC = $(CROSS_COMPILE)gcc
然后make即可。
解決方法二:
source ./1.8.1/environment-setup-cortexa8hf-vfp-neon-poky-linux-gnueabi
修改test工具目錄下的Makefile中的CC為:
CC=arm-poky-linux-gnueabi-gcc -march=armv7-a -mfloat-abi=hard -mfpu=neon -mtune=cortex-a8 --sysroot=/home/ballack/1.8.1/sysroots/cortexa8hf-vfp-neon-poky-linux-gnueabi
然后make即可。
這樣直接make就可以通過(guò)了, 搞了好久 ,僅此用來(lái)警醒自己, 需要打好基礎(chǔ)!?。?/p>
*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。
熔斷器相關(guān)文章:熔斷器原理
最近需要為客戶平臺(tái)編譯一個(gè)工具, 客戶提供了交叉編譯鏈過(guò)來(lái), 按照以往的編譯經(jīng)驗(yàn), 找到gcc所在的路徑,然后通過(guò)
make CROSS_COMPILE= gcc所在路徑即可, 但是報(bào)錯(cuò)了,提示 fatal error: gnu/stubs-soft.h: No such file or directory 。
具體如下:
ballack@ballack:~/test$ make TARGET=WL CROSS_COMPILE=/home/ballack/1.8.1/sysroots/i686-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi- make clean make[1]: 正在進(jìn)入目錄 `/home/ballack/test' rm -f *.o *.so *.a wl/exe/*.o wl/ppr/src/*.o shared/*.o shared/bcmwifi/src/*.o dhd/exe/*.o make[1]:正在離開(kāi)目錄 `/home/ballack/test' make test make[1]: 正在進(jìn)入目錄 `/home/ballack/test'/home/ballack/1.8.1/sysroots/i686-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-gcc --sysroot=/home/ballack/1.8.1/sysroots/cortexa8hf-vfp-neon-poky-linux-gnueabi -Iinclude -Icommon/include -Ishared/bcmwifi/include -Iwl/exe/ -Iwl/ppr/include -Idhd/exe -g -Wall -DBCMWPA2 -DTARGETENV_android -DLINUX -Dlinux -DRWL_WIFI -DRWL_SOCKET -DRWL_DONGLE -DRWL_SERIAL -DBCMINTERNAL -DBCMDBG -DD11AC_IOTYPES -DPPR_API -DSR_DEBUG -DWLCNT -DWIFI_ACT_FRAME -DWLEXTLOG -DSERDOWNLOAD -DWLTEST -DWLBTAMP -DWLP2P -DWLMCHAN -DWLTDLS -DWLNDOE -DWLP2PO -DWLANQPO -DTRAFFIC_MGMT -DWL11ULB -DBT_WIFI_HANDOVER -DWLWNM -DWLBSSLOAD_REPORT -DWL_NAN -DWL_BTCDYN -DWLPFN -DWLPFN_AUTO_CONNECT -DWLC_HIGH -c -o wl/exe/wlu.o wl/exe/wlu.c In file included from /home/ballack/1.8.1/sysroots/cortexa8hf-vfp-neon-poky-linux-gnueabi/usr/include/features.h:389:0, from /home/ballack/1.8.1/sysroots/cortexa8hf-vfp-neon-poky-linux-gnueabi/usr/include/sys/types.h:25, from include/typedefs.h:201, from include/wlioctl.h:18, from wl/exe/wlu.c:27:/home/ballack/1.8.1/sysroots/cortexa8hf-vfp-neon-poky-linux-gnueabi/usr/include/gnu/stubs.h:7:29: fatal error: gnu/stubs-soft.h: No such file or directory # include <gnu/stubs-soft.h> ^ compilation terminated. make[1]: *** [wl/exe/wlu.o] 錯(cuò)誤 1make[1]:正在離開(kāi)目錄 `/home/ballack/test' make: *** [make_wl] 錯(cuò)誤 2
查看對(duì)方提供的sdk編譯說(shuō)明, 才知道他們編譯之前需要source一個(gè)文件:
source /home/ballack/1.8.1/environment-setup-cortexa8hf-vfp-neon-poky-linux-gnueabi
查看文件內(nèi)容, 發(fā)現(xiàn) CC 是需要指定一系列參數(shù)的:
export SDKTARGETSYSROOT=/home/ballack/1.8.1/sysroots/cortexa8hf-vfp-neon-poky-linux-gnueabi
export CC="arm-poky-linux-gnueabi-gcc -march=armv7-a -mfloat-abi=hard -mfpu=neon -mtune=cortex-a8 --sysroot=$SDKTARGETSYSROOT"
所以直接使用arm-poky-linux-gnueabi-gcc -o test test.c 是不行的。
解決方法一:
source ./1.8.1/environment-setup-cortexa8hf-vfp-neon-poky-linux-gnueabi
注釋掉
#CC = $(CROSS_COMPILE)gcc
然后make即可。
解決方法二:
source ./1.8.1/environment-setup-cortexa8hf-vfp-neon-poky-linux-gnueabi
修改test工具目錄下的Makefile中的CC為:
CC=arm-poky-linux-gnueabi-gcc -march=armv7-a -mfloat-abi=hard -mfpu=neon -mtune=cortex-a8 --sysroot=/home/ballack/1.8.1/sysroots/cortexa8hf-vfp-neon-poky-linux-gnueabi
然后make即可。
這樣直接make就可以通過(guò)了, 搞了好久 ,僅此用來(lái)警醒自己, 需要打好基礎(chǔ)!?。?/p>
*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。
熔斷器相關(guān)文章:熔斷器原理