【二】makefile 进阶

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xiaoxu2050/article/details/83927572

特殊字符

*: 通配符
*.c 表示所有c文件。
    %: 用于替换关键词
    %.o: %.c
test.o与该规则匹配,即 test.o: test.c

$@:表示目标的名字,包括扩展名
$^:表示依赖的所有文件,以空格隔开,不重复
$<:表示依赖的第一个文件
$+:表示所有依赖文件,空格隔开,可以重复
$?:依赖列表中更新过的文件

shell命令的中的特殊字符

@ 执行shell命令时会回显命令本身,使用@就不会回显了,例如:

test: test.o
    #使用@,原命令就不会会回显
    echo "in test" #回显
    @echo "out test" #不会回显

输出:

#test @ #回显内容
echo "in test" #回显内容
in test #命令输出
out test #命令输出

-: make过程中出错会终止编译,在命令行前加-,则不会终止,常用配合rm和mkdir等命令

clean:
-rm -rf *.o

+: 命令行前加上加号+的含义,表明在使用 make -n 命令的时候,其他行都只是显示命令而不执行,只有+ 行的才会被执行。

猜你喜欢

转载自blog.csdn.net/xiaoxu2050/article/details/83927572