2013-10-15 65 views
1

有人指出此之前,類似的問題在這裏纔回答: Compiling Linux Kernel Module With A Custom Header包括Linux的自定義頁眉模塊

我有同樣的問題。我創建了自己的一組結構和函數,並將它們定義在一個C文件中。然後,我創建了一個名稱相同的頭文件並將其包含在模塊中。然後我創建了Makefile:

obj-m += themodule.o 
themodule-objs := the-module.o my-code.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 

我的自定義文件是my-code.c和my-code.h。

當我試圖編譯模塊時,收到了很多警告,告訴我my-code.c中的所有函數在module.c中都是未定義的。當我嘗試加載模塊時,收到錯誤,告訴我對my-code.c的函數調用是「未知符號」。我嘗試了鏈接問題中提到的解決方案(請參閱Makefile),但這對我來說並沒有什麼用。有什麼想法嗎?

+0

你能複製和粘貼你* unknonw符號*錯誤和編譯警告? – Federico

回答

2

訂單themodule-objs的事項。試試這個:

obj-m += themodule.o 
themodule-objs := my-code.o the-module.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 
+0

感謝您的回覆。然而,我仍然得到了相同的警告和錯誤。 –