makefile

使用tab键

obj-m:=hello.o KDIR:=/lib/modules/$(shell uname -r)/build PWD:=$(shell pwd) default: $(MAKE) -C $(KDIR) M=$(PWD) modules clean: rm -f *.o *.ko

(2)shell pwd                             取得当前工作路径

(3)shell uname -r                    取得当前内核的版本号

(4)KDIR                                     当前内核的源代码目录。

(5)make -C $(LINUX_KERNEL_PATH) M=$(CURRENT_PATH) modules

这就是编译模块了:

a -- 首先改变目录到-C选项指定的位置(即内核源代码目录),其中保存有内核的顶层makefile;

b -- M=选项让该makefile在构造modules目标之前返回到模块源代码目录

然后,modueles目标指向obj-m变量中设定的模块;在上面的例子中,我们将该变量设置成了hello.o。

3、编译多文件

若有多个源文件,则采用如下方法:

obj-m := hello.o

hello-objs := file1.o file2.o file3.o

 

用户态makefile
all:
    gcc hello.c -o hello
clean:
    rm -rf hello

 

posted on 2020-06-10 14:59  裸睡的猪  阅读(215)  评论(0编辑  收藏  举报