-I /usr/src/linux-headers-2.6.32-24/include 其中, -I和後面的路徑沒有空格
-I/usr/src/linux-headers-2.6.32-24/include
一般也很少直接用gcc命令, 大部分是用makefile, make -C kernel_path moles
② linux 模塊編譯顯示沒有頭文件
編寫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
③ 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、如果不能找到,就說明當前系統缺少此頭文件的庫,自行網路搜索相應的庫安裝即可。