編寫linux內核模塊,需要自己編寫Makefile,同時在Makefile裡面制定自己的內核路徑,這樣才能處理提示沒有頭文件錯誤。
編譯命令:
exportPATH=$PATH:#編譯工具鏈路徑
exportARCH=#CPU類別(例如arm)
exportCROSS_COMPILE=arm-none-linux-gnueabi-#(編譯工具xx-gcc的前綴xx)
make-C#編譯好的內核模塊運行的Linuxkernel內核源代碼目錄樹M=$`pwd`moles
Linux模塊編譯例子:
exportPATH=$PATH:/usr/local/arm/4.2.2-eabi/usr/bin
#forSamsungs5pc100
exportARCH=arm
exportCROSS_COMPILE=arm-none-linux-gnueabi-
make-C/home/wenxy/src/s5pc100/linux-2.6.35.5M=$`pwd`moles
Ⅱ C語言源文件編譯時找不到頭文件
首先看看這幾個頭文件是否存在?
如果存在記下存放的路徑,檢查頭文件的配置,即查看makefile,看看頭文件尋找路徑是否有剛才的那個路徑。
如果不存在這幾個頭文件的話,那就去找找這幾個頭文件,有可能需要安裝一些庫文件
Ⅲ 編譯的時候找不到 SDK庫中的頭文件怎麼辦
一,引入第三方sdk時找不到頭文件問題:
我在mac mini,Xcode6.x的環境下引入了第三方SDK,同Xcode自帶的framework同放在工程的Frameworks路徑下,想在代碼中使用第三方SDK時發現找不到,而系統的framework卻能夠找到,解決辦法:
在Build Settings里搜索Search Paths 發現裡面Library Search Paths 中沒有生成剛引進的SDK路徑,自己手動添加上去(系統自帶的framework不需要添加),將裡面Library
Search Paths 中沒有用到的地址刪除,如圖:framework5是引入的第三方:
再回頭看,是否能夠引用到了第三方的庫,如果還沒有,那麼將你第三方SDK對應的framework5放到最外層文件夾,再對應的重新定位Framework Search Paths,能夠找到了吧!
二:好了,頭文件找到了,coding。。。然後編譯運行,發現報錯「_OBJC_CLASS_$_某文件名", referenced from:xx 」;
出這個錯是因為Xcode沒能自動把「_OBJC_CLASS_$_某文件名", referenced from:xx 」中的「 某文件名 」編譯進去,又需要手動去弄了,實現的部分可以是。framwork也可以是源碼文件,解決辦法,打開Project Target-》Build Phases,將「某文件」 拖到對應的位置,(如果是源碼文件拖到Compile Sources,如果是在。framework中,則將framework拖到Lind Binary With Libraries),如圖:
再編譯,如果再報錯,
1,那麼再閱讀你所使用的第三方SDK文檔,有的引入需要依賴於系統的framework,請按照說明將Xcode自帶的framework引入即可;
2,還有一種可能,靜態庫一般有兩個,一個真機調用的,一個模擬器調用的。在真機調試時使用模擬器專用的庫或反之都會報錯,你可以將它們編譯成真機和模擬器都能使用的靜態庫,方法這里不細說。
Ⅳ iOS開發中找不到頭文件解決辦法
有時候我們導入頭文件後編譯保存找不到'xxx.h'文件,可能是因為加入頭文件路徑沒有配置好。
解決方案: 在 Target ->Build Setting -> Search Paths -> User Header Search Paths裡面添加 ${SRCROOT} 即可,如下圖所示:
Ⅳ linux頭文件存在編譯時卻找不到
1、通過find命令查找編譯時找不到的頭文件。
find / -name x.h (x.h是缺少的頭文件,根據實際情況操作)
2、如果能找到, 就在/usr/include目錄下建立一個x.h的軟連接
ln -s /usr/include /usr/x/y/z/x.h (假設缺少的頭文件路徑 /usr/x/y/z/,根據實際情況操作)
3、如果不能找到,就說明當前系統缺少此頭文件的庫,自行網路搜索相應的庫安裝即可。
Ⅵ 做msp430的編程時,在編譯的時候顯示沒有頭文件.該怎麼辦
首先看看你要的是什麼頭文件,然後去編譯器的安裝根目錄下搜索,看是否含有你要的頭文件。如果沒有,看庫文件裡面有沒有合適的可以用來做替換,或者到網上下載一個你想要的頭文件,再不行你就自己寫一個咯。
這個主要還是看你要的是什麼頭文件。
Ⅶ 編譯時找不到頭文件這個問題怎麼解決
你是否有試過編譯一個文件時,老是因為缺掉一些頭或庫文件而編譯不通過呢?下面給出一種方法來解決這個問題:
1.先安裝apt-filesudoapt-get install apt-filesudoapt-file update
2.假如make時,出現
main.c:21:21:
error: gtk/gtk.h: No such file or directory使用:sudoapt-file searchgtk.h
運行以上命令可能返回好多包,精簡一下sudoapt-file search gtk/gtk.h結果如下:
# apt-file search gtk/gtk.h
libgfcui-dev:
usr/include/gfc-2.0/gfc/gtk/gtk.hh
libgtk+2.0-directfb-dev:
usr/include/directfb/gtk-2.0/gtk/gtk.h
3.最後定位該頭文件所在的位置
wyylling@ubuntu:~/Gnome$ locate gtk.h
將該/usr/include/gtk-2.0/加入頭文件搜索路徑中即可
Ⅷ vscode下運行c++找不到頭文件是怎麼回事
版本不同,打開同一工程時會提示找不到。
解決這個問題的方法如下:
1、打開「VS2017」,點擊「項目」,打開「項目屬性」。
Ⅸ 編譯時找不到頭文件有哪些可能原因
頭文件有兩種,一種是系統自定義的庫<>,一般編譯環境里會有默認配置路徑
另一種是自定義的頭文件"",這種可能需要在c文件的相同目錄下,
不在相同目錄下,就需要指定include路徑。一般都是h文件放一個文件夾,增加配置include路徑。
Ⅹ visual C++6.0編譯的時候找不到頭文件stdafx.h怎麼辦
stdafx.h 是微軟自己搞的預編譯機制中的一個默認文件,裡面填寫代碼用到的h文件, 而vs在編譯代碼時,會把 stdafx.h 裡面提到的h進行預先編譯,緩存起來,當用戶不更改stdafx.h 裡面內容時,則不重新編譯這些h, 這樣會讓你更加高效地進行反反復復的run/debug操作。
當你把vs工程設置成 [不使用預編譯機制]時, 可能會導致每次調試運行的時候,編譯速度變慢.
如果由於種種原因, cpp文件在編譯時找不到他所在目錄中的stdafx.h, 那麼
1,使用記事本 ,新建一個空白文件,放在引用stdafx.h 的cpp所在文件夾。
2,把這個新建的txt文件改名成stdafx.h ,內容可以為空。
3,重新編譯代碼。