2012-01-30 224 views
2

我無法編譯Linux內核模塊,如何編譯Linux內核模塊

鑑於以下來源:

/* hello.c */ 

#include <linux/module.h> 
#include <linux/kernel.h> 

int init_module(void) 
{ 
printk(KERN_INFO "Hello world\n"); 
return 0; 
} 

void cleanup_module(void) 
{ 
printk(KERN_INFO "Goodbye world\n"); 
} 

/* end of hello.c */ 

和下面的Makefile:

obj-m += hello.o 
all: 
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules 
clean: 
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean 

當我在與源文件和make文件在同一個目錄中輸入make,我得到以下消息:'沒有爲'all'完成 編譯似乎在此停止,並且沒有創建目標文件。

現在只是用於測試,我嘗試了新的簡單的Makefile: TARGET:=你好 $ {TARGET}的.o:$ {TARGET} .C

運行make給了我新的錯誤:hello.c中:1:致命錯誤:linux/module.h:沒有這樣的文件或目錄。

然而,這文件的文件夾中可以找到:

/usr/src/linux-headers-2.6.35-22/include/linux 

以及在

/usr/src/linux-headers-2.6.35-22-generic/include/linux 

因爲是kernel.h當文件

我缺少什麼,什麼想法?

在此先感謝

回答

3

你缺少的線的起點之間的選項卡「讓-C ......」

+0

LOL!感謝gby!這解決了它。在那裏試圖找出那一天:) – eJm 2012-01-31 11:09:57