有人指出此之前,類似的問題在這裏纔回答: 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),但這對我來說並沒有什麼用。有什麼想法嗎?
你能複製和粘貼你* unknonw符號*錯誤和編譯警告? – Federico