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

 

posted @ 2022-04-19 15:20  yinhuachen  阅读(65)  评论(0编辑  收藏  举报