linux内核模块的Makefile问题

CodeInfo_ 2014-01-20 09:34:44
A.c,B.c,Makefile,Makefile_B都在同一文件夹下,B.c中调用A.c中的函数

Makefile:
ifneq ($(KERNELRELEASE),)
obj-m :=A.o
obj-m :=B.o
else
KDIR :=/lib/modules/2.6.18-53.el5xen/build
all:
make -C $(KDIR) M=$(PWD) modules
clean:
rm -f *.o *.ko *.mod.o *.symvers *.mod.c
endif


我是想2个内核模块都在一个makefile中实现,但是这样子每次都只有B.ko的生成,A没有任何变化

--------------------------------------------------------------------------------------------

后来我把它改成2个模块分别编译
Makefile:

ifneq ($(KERNELRELEASE),)
obj-m :=A.o
else
KDIR :=/lib/modules/2.6.18-53.el5xen/build
all:
make -C $(KDIR) M=$(PWD) modules
clean:
rm -f *.o *.ko *.mod.o *.symvers *.mod.c
endif


Makefile_B:

ifneq ($(KERNELRELEASE),)
obj-m :=B.o
else
KDIR :=/lib/modules/2.6.18-53.el5xen/build
all:
make -C $(KDIR) M=$(PWD) modules
clean:
rm -f *.o *.ko *.mod.o *.symvers *.mod.c
endif

但是执行make -f Makefile_B,生成的也是A.ko,说明执行的也是Makefile,这是为什么???
...全文
322 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lbaihao 2014-01-29
  • 打赏
  • 举报
回复
obj-m := A.o obj-m += B.o
  • 打赏
  • 举报
回复
用include把别的makefile引入啊
糊涂的小白 2014-01-21
  • 打赏
  • 举报
回复
obj-m := A.o obj-m += B.o
蝶舞醉风 2014-01-21
  • 打赏
  • 举报
回复
同求解~~~
Q.sean 2014-01-21
  • 打赏
  • 举报
回复
obj-m :=A.o obj-m :=B.o ????? 回去再好好看看 makefile的赋值规则吧
CodeInfo_ 2014-01-20
  • 打赏
  • 举报
回复
自己顶一下,求指点

4,465

社区成员

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

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