当前位置: 技术问答>linux和unix
linux内核模块的Makefile问题
来源: 互联网 发布时间:2017-05-09
本文导语: 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...
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,这是为什么???
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,这是为什么???
|
obj-m := A.o
obj-m += B.o
obj-m += B.o
|
用include把别的makefile引入啊
|
obj-m := A.o
obj-m += B.o
obj-m += B.o