Re: [问题] 请教Makefile将几个*.c build成ko写法

楼主: ICECOCA (unknow)   2013-12-22 22:29:18
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 需要怎样修改...
: 谢谢各位指导

Links booklink

Contact Us: admin [ a t ] ucptt.com