makefile函数和特殊变量和变量
我们这里只要介绍makefile中的两个函数(makefile中不止两个函数)
在makefill中所有函数都是有返回值的 必须拿到这个返回值
(和shell中的函数不同,shell函数中函数没有返回值和参数表,但是可以像调用
程序一样输入命令行(可以理解成参数),进程的结束状态(int类型)可以变相理解成返回值,这些在前面的章节 我们
已经介绍过了)
1.wildcard函数
和变量一样要加 $来获取值, ()括起来然后函数名(wildcard 参数)
src=$(wildcard ./*.c) 表示当前路劲下的所有 .c 文件
2.patsubst函数
这个函数是一个替换函数
obj=$(patsubst ./%.c ./%.o $(src))表示把$(src)所有的 .c 文件 都替换成 .o 文件
可能这样说起来比较干,那我们来实现一个简单的demo看一下
效果:
不急让我们一一讲解其中的一些关键字
变量 src rely target的取值 我就不用多说了 把 用 $()
makefile中的特殊变量
$<:规则中的第一依赖
[email protected]:规则的目标
$^:规则中的所有依赖
只能在规则的命令中使用
makefile中还提供了一些大写的变量
接下来 说说这个 .PHONY:clean
他表示声明 clean 为一个伪目标(在运行前执行)
更多的C/C++ linux编程我会在下面的文章中陆续的分享,也可以关注‘奇牛学院’
来一起讨论