Makefile模板如下:
#编译hello.o的时候加上预定义DEBUG_TEST CFLAGS_hello.o += -DDEBUG_TEST #编译所有的时候加上预定义MY_DEBUG EXTRA_CFLAGS += -DMY_DEBUG #指定最终生成的目标 #如果只有单个文件可以写成"obj-m := hello.o" obj-m += hello.o #指定生成hello.o文件需要哪些模块(如果只有单个文件可以删除下面这一行), #如果hello.o需要多文件构成则可以写成类似如下形式: #isdn-objs := isdn_net_lib.o isdn_v110.o isdn_common.o 用空格隔开各个模块 hello-objs := src/hello.o KID := /lib/modules/$(shell uname -r)/build PWD := $(shell pwd) all: make -C $(KID) M=${PWD} modules clean: rm -rf *.o *.cmd *.ko *.mod.c .tmp_versions *.ko.unsigned *.order *.symvers rm -rf src/*.o src/*.cmd src/*.ko src/*.mod.c src/.tmp_versions src/*.ko.unsigned src/*.order src/*.symvers
hello.c文件如下:
#include <linux/module.h> //所有模块都需要的头文件 #include <linux/init.h> // init&exit相关宏 MODULE_LICENSE("GPL"); static int __init hello_init(void) { printk(KERN_ERR "#### hello world\n"); return 0; } static void __exit hello_exit(void) { printk(KERN_ERR "#### exit\n"); } module_init(hello_init); module_exit(hello_exit);
hello.c请放在makefile同目录下的src文件夹下!!!
时间: 2024-10-11 13:11:47