2013-08-23 68 views

回答

0

根据make clean命令,Kbuild系统删除所有目标文件(*.o)。任何外部目标文件也将被删除,除非它们的扩展名从.o更改为.o_shipped以保留它们。

以下示例Makefile演示如何使用_shipped到模块8123.ko内链接的目标文件8123_bin.o_shipped

ifneq ($(KERNELRELEASE),) 
# kbuild part of makefile 
obj-m := 8123.o 
8123-y := 8123_if.o 8123_pci.o 8123_bin.o 

else 
# normal makefile 
KDIR ?= /lib/modules/`uname -r`/build 

default: 
     $(MAKE) -C $(KDIR) M=$$PWD 

# Module specific targets 
genbin: 
     echo "X" > 8123_bin.o_shipped 
endif 

基本上一个.o_shipped文件是相同的.o文件不同之处在于的kbuild系统理解,它是一个二进制blob,它是按原样提供的,其源在内核/模块源目录中不可用。因此,即使源被清理,*.o_shipped二进制blob也会保留。

更多细节可以在