通过KBUILD_CFLAGS 来添加你需要的宏
如下test.c
#include <linux/init.h>
#include <linux/module.h>
MODULE_LICENSE("Dual BSD/GPL");
MODULE_AUTHOR("TEST");
int hello_init(void)
{
#ifdef TEST_T
printk(KERN_INFO "Hello World\n");
#else
printk(KERN_INFO "Hello World 1111\n");
#endif
return 0;
}
void hello_exit(void)
{
printk(KERN_INFO "Goodbye World\n");
}
module_init(hello_init);
module_exit(hello_exit);
对应的makefile如下:
KBUILD_CFLAGS+=-DTEST_T
ifneq ($(KERNELRELEASE),)
obj-m := test.o
else
KERN_DIR ?= /usr/src/linux-headers-$(shell uname -r)/
PWD := $(shell pwd)
default:
$(MAKE) -C $(KERN_DIR) M=$(PWD) modules
endif
clean:
rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions
有KBUILD_CFLAGS这一句编译之后加载驱动输出 “hello world”,屏蔽掉KBUILD_CFLAGS这一句编译之后,加载驱动输出“hello world 1111”