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  上官鸿信の  阅读(120)  评论(0)    收藏  举报