Makefile常忘语法备忘录
1. 在命令前面加@:不打印命令本身,只打印命令的output
2. $^: 所有的依赖文件 $@: 目标文件 $<: 第一个依赖文件
3. $(abspath _names)
该函数主要用于将_names中的各路径转换成绝对路径,并将转换后的结果返回。
4. find [dir_name] expr1 -o expr2
Or; expr2 is not evaluated if expr1 is true.
5. Makefile中 =, ?=, +=,:= 的差别和作用
https://blog.csdn.net/b876144622/article/details/80372161
6. addprefix
$(addprefix src/,foo bar)
返回值为“src/foo src/bar”.
7. 隐藏变量 CXX : 其实就是g++
8. 取目录函数——dir
解释: 从文件名序列<names>
中取出目录部分。目录部分是指最后一个反斜杠(“/”)之前的部分
示例: $(dir src/foo.c hacks)
返回值是“src/
, ./”。
9. realpath 返回绝对路径
10. ar rcs nvboard/build/nvboard.a nvboard/build/<original_cpp files>.o 使用ar把众多.o文件整合成一个.a文件(类似于库)
11. Makefile中默认参数的值
test1: test1.cpp
clean:
@echo $(CXX)
@echo $(CC)
@echo $(AR)
@echo $(RM)
@echo $(CXXFLAGS)
@echo $(CFLAGS)
@echo $(ARFLAGS)
再来看结果:
taoge@localhost Desktop> make all
make: *** No rule to make target `all'. Stop.
taoge@localhost Desktop> make clean
g++
cc
ar
rm -f
rv
taoge@localhost Desktop>
在makefile中就是这样, 有默认命令和默认参数。 所以, 下次看到makefile中的CXX但没有发现其定义时, 就不要见怪了。
————————————————
版权声明:本文为CSDN博主「涛歌依旧」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/stpeace/article/details/53054006