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
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号