求助:两个驱动文件,makefile应该怎么写?

专注嵌入式 2011-08-18 02:05:41
如题,现在我想编译mydev.c,但是mydev.c用到了mybus.c中的定义的两个结构体,my_bus与my_bus_type
在mybus.c中已经用下面的语句把这两个符号输出了
EXPORT_SYMBOL(my_bus);
EXPORT_SYMBOL(my_bus_type);

mybus.c跟mydev.c放在同一个目录下,请问各位高手,应该怎么写makefile啊?给个思路也行。

我之前是认为只要放在同一个目录,在编译mydev.c的时候,会将mybus.c也编译进去,所以makefile就按照只编译mydev.c的方式写的,这样编译通过了,但是在insmod的时候出现错误提示:
mydev: Unknown symbol my_bus_type
mydev: Unknown symbol my_bus
insmod: cannot insert 'mydev.ko': unknown symbol in module or invalid parameter
...全文
181 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
voice_shen 2011-08-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 cqbamboo 的回复:]
如果你原来写的是 obj-m := mydev.o

参照这个,
C/C++ code
23 mydevice-objs := mydev.o mybus.o
24 obj-m := mydevice.o
[/Quote]
+1
xinhua0910 2011-08-18
  • 打赏
  • 举报
回复
两个都要编译

OBJ=mydev.o mybus.o

all=mytest

mytest:$(OBJ)
cc -o $@ $(OBJ)

mydev.o:mydev.c
cc -c mydev.c
mybus.o:mybus.c
cc -c mybus.c

cqbamboo 2011-08-18
  • 打赏
  • 举报
回复
如果你原来写的是 obj-m := mydev.o

参照这个,
 23 mydevice-objs := mydev.o mybus.o
24 obj-m := mydevice.o

4,438

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧