fatal error: gnu/stubs-soft.h: No such file or directory
在給一個(gè)嵌入式平臺(tái)開發(fā)時(shí),編譯項(xiàng)目出現(xiàn)如題所示錯(cuò)誤。通常情況下這種問題表明某個(gè)文件缺失,但是先別急著去找那個(gè)文件或者從其他地方拷貝過來用。
參考來源1:https://blog.csdn.net/wuyusheng314/article/details/79428996
參考博文與我的情況相似,不過我是使用clion進(jìn)行開發(fā)的,而clion使用cmake進(jìn)行代碼組織,這樣免去了寫makefile的痛苦。不過問題的本質(zhì)是一樣的。
從該文件看,引入stubs-soft.h頭文件需要保證沒有定義__ARM_PCS_VFP宏。
同樣引用參考答案的一段內(nèi)容:
cc has a builtin define to denote hard abi when in use, e.g. when using -mfloat-abi=hard it will define __ARM_PCS_VFP to 1 and therefore we should check that to determine which calling convention is in use and not __VFP_FP__ which merely indicates presence of VFP unit.
即,這個(gè)宏是通過編譯參數(shù)來定義的,所以需要在編譯參數(shù)中加上-mfloat-abi=hard 或者 -mfloat-abi=soft,具體的需要依據(jù)您使用的平臺(tái)來決定。而使用cmake的話可以設(shè)定如下參數(shù):
set(CMAKE_C_FLAGS "-march=armv7-a -marm -mfpu=vfp -mfloat-abi=hard")
set(CMAKE_CXX_FLAGS "-march=armv7-a -marm -mfpu=vfp -mfloat-abi=hard")
注:前面兩個(gè)參數(shù)是架構(gòu)相關(guān)的,并不影響此問題。
fatal error: gnu/stubs-soft.h: No such file or directory – OpenMind (lxins.com)
*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。