Makefile编译选项etc

-save-temps选项:

告诉gcc编译器不要删除临时文件。

1)a.i : 是经过C预处理程序(CPP)处理之后的文件,这个就是我们以后工作的基础
2)a.s: 是经过汇编器处理之后产生的汇编代码
3)a.o: 是编译器产生的目标代码
4)a.out: 是编译器默认产生的可执行程序。


Makefile 中 echo 和@echo的区别

echo: 会在shell中显示echo这条命令和后面要输出的内容
@echo: 不会显示echo这条命令,只会显示后面要输出的内容
例如:
echo “hello” 输出为:echo "hello" hello
@echo "hello" 输出为:hello
make在执行命令之前会把要执行的命令进行输出,称之为回显
如果要执行的命令以字符@开始,则不会回显,


$(warning  1DVD_SERVICE=$(DVD_SERVICE)) 
$(warning  1SECURITY=$(SECURITY)) 
$(warning  1ST40_IMPORTS is $(ST40_IMPORTS))   变量名,一定要加括号。不加的话,可以发现前面都无法输出变量的值。

内核模块的makefile

obj-m += lkm_example.o
all:
	make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
clean:
	make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
	
test:
	sudo dmesg -C
	sudo insmod lkm_example.ko
	sudo rmmod lkm_example.ko
	dmesg

posted @ 2021-10-21 19:28  上官鸿信の  阅读(84)  评论(0编辑  收藏  举报