
makefile
文章平均质量分 84
lanhuazui10
这个作者很懒,什么都没留下…
展开
-
Makefile中.PHONY伪目标的作用
当一个目标文件的依赖包含伪目标时,每一次在执行这个规则时伪目标所定义的命令都会被执行。Linux内核源码的/scripts/Makefile.build中就有这种伪目标出现:各个子目录并行递归生成其目录的.o文件,最终通过顶层目录的.o生成内核文件。在Makefile中第一个目标即最后要生成的文件,如果想在一个目录下创建多个可执行程序,可以用伪目标“all”作为第一个目标。而伪目标不在任何目标文件的依赖中时,只能通过make来主动执行,如上面的make clean。转载 2024-10-23 20:07:53 · 170 阅读 · 0 评论 -
Makefile中基础
结果是由空格隔开的 ‘text’。所以:$(patsubst .c,.o,test1.c test2.c)的意思就是:用.o替换test1.c test2.c中的.c,最终得到test1.o test2.o。如果先执行test1.o:test1.c,则会提示gcc -o test1.o test2.c。按理来说%.o:%.c的规则排在前面,先匹配,但是现在输出了gcc -o test1.o test2.c,说明执行的是test1.o:test1.c规则,所以说明先查找具体命令,查找不到再执行匹配符的命令。转载 2024-10-23 20:03:02 · 76 阅读 · 0 评论 -
Linux Makefile 生成 *.d 依赖文件以及 gcc -M -MF -MP 等相关选项说明
其输出的文件名是基于 -o 选项,若给定了 -o 选项,则输出的文件名是 -o 指定的文件名,并添加 .d 后缀,若没有给定,则输入的文件名作为输出的文件名,并添加 .d 后缀,同时继续指定的编译工作。注意:-MD 不会像 -M 那样阻止正常的编译任务,因为它默认关闭了 -E 选项,比如命令中仅使用了 -c 选项而没有指定 -o 选项时,若同时使用了 -M 选项,则不会生成 .o 文件,若使用的是 -MD 选项,则会生成 .o 文件。然而,-M 选项的主要目的是生成依赖关系,而不是生成预处理后的输出。转载 2024-10-23 19:42:46 · 168 阅读 · 0 评论