linux编译寻找包含的头文件,Linux编写内核模块编译时找不到头文件
//所有模塊都需要的頭文件#include // init&exit 相關(guān)宏MODULE_LICENSE("GPL");static int __init hello_init (void){printk("Hello module init\n");return 0;}static void __exit hello_exit (void){printk("Hello module exit\n");}module_init(hello_init);module_exit(hello_exit);
用了gcc -D__KERNEL__ -DMODULE -DLINUX -I /usr/src/linux-headers-2.6.32-24/include h.c命令。
其中 /usr/src/linux-headers-2.6.32-24/include是我的內(nèi)核源碼include路徑,h.c是源碼文件。執(zhí)行完后出現(xiàn)以下錯誤
In file included from /usr/src/linux-headers-2.6.32-24/include/linux/list.h:6,
from /usr/src/linux-headers-2.6.32-24/include/linux/module.h:9,
from h.c:1:
/usr/src/linux-headers-2.6.32-24/include/linux/prefetch.h:14:27: error: asm/processor.h: 沒有那個文件或目錄
/usr/src/linux-headers-2.6.32-24/include/linux/prefetch.h:15:23: error: asm/cache.h: 沒有那個文件或目錄
In file included from /usr/src/linux-headers-2.6.32-24/include/linux/module.h:9,
from h.c:1:
/usr/src/linux-headers-2.6.32-24/include/linux/list.h:7:24: error: asm/system.h: 沒有那個文件或目錄
底下還有一大堆,都是“asm/***.h: 沒有那個文件或目錄”這樣的錯誤
我看了下,是我包含的那兩個頭文件里面包含了prefetch.h這個頭文件,然后prefetch.h又包含了asm/processor.h等等。但是我去include里面找,能找到processor.h這個文件,但是不是在asm文件夾下面。也沒有asm這個文件夾。這怎么回事?
我現(xiàn)在連這個最簡單的內(nèi)核模塊都運行不起來,求各位高手指點下。
還是說我編譯內(nèi)核模塊的方法不對?
總結(jié)
以上是生活随笔為你收集整理的linux编译寻找包含的头文件,Linux编写内核模块编译时找不到头文件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Matlab】parfor并行运算如何
- 下一篇: linux generic什么意思_如何