Re: [問題] 請教Makefile將幾個*.c build成ko寫法

看板LinuxDev作者 (unknow)時間11年前 (2013/12/22 22:29), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
obj-m := target.o target-objs := 1.o 2.o 3.o 4.o 5.o 如果不是特別的功能,就編成同一支.ko就好。 編成同一支ko,定義在別的.c的符號,比方說全域變數或是函式 也不用EXPORT_SYMBOL,但是要extern ※ 引述《greenlinux (GreenLinux)》之銘言: : 請教各位: : 現在在一個folder內有 1.c, 2.c, 3.c, 4.c, 5.c 及 1.h, 2.h 等檔案 : 是一個driver 的 code. : 其中 各 *.c 內有些參數或Function宣告是共用的. 例如: : int x = 0 在 1.c, 然後 1.h 有 extern int x=0; : 1.c 有function: int test1(void){...} : 5.c 也可以用 test1() 來使用.. : 請問(1)要如何寫Makefile 讓它們一起build 成一個 *.ko : 還是一定要build 成 多個ko? : (2) 我試過寫成: : obj-m 1.o : obj-m 2.o : obj-m 3.o : obj-m 4.o : obj-m 5.o : 會出現以下error: : "test1" [drivers/xxx/xx.ko] undefined : "x" [drivers/xxx/xx.ko] undefined : 有些function 加 EXPORT_SYMBOL(xxxxxx)不再出現undefined : 但有些可以有些還是會 show undefined..... : 請問Makefile 需要怎樣修改... : 謝謝各位指導 -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.116.169.235
文章代碼(AID): #1IjlT1NO (LinuxDev)
文章代碼(AID): #1IjlT1NO (LinuxDev)