这个makefile可以运行当前目录下以.c结尾的文件变为可执行文件。
下面是对makefile的一下介绍:
1规则,2函数,3变量

1个规则:
目标:依赖条件
(必须是一个tab键,不能多也不能少)命令

例如:
hello:hello.c
gcc -c hello.c -o hello
此时目标就是hello,所要依赖的条件是hello.c(也就是说没有hello.c是不可能生成hello的);
由依赖条件生成目标的命令就是:gcc -c hello.c -o hello
一个简单的makefile制作

注意事项:
1:目标时间必须晚于依赖条件时间,否则更新目录;
2:依赖条件如果不存在,找寻新的规则去产生依赖;

2:两个函数
src = $(wildcard %.c):找到当前目录下所有后缀为.c的文件赋值给src;
obj = $(patsubst %.c ,%.o, $(src)):把src里所有后缀为.c的文件替换为.o;
(obj = $(patsubst %.c ,%, $(src)):把src里所有后缀为.c的文件替换为可以执行文件,例如add.c----->add然后在linux命令行中输入./add就可以运行)
一个简单的makefile制作
这个时候就可以把上面的完整makefile改变一下:
一个简单的makefile制作

3个自动变量:
[email protected]:在规则命令中表示规则中的目标;
$<:在规则命令中表示第一个依赖条件;
$^:在规则命令中表示所有依赖条件;
也许你上面看不到,那我们来看一个例子:

一个简单的makefile制作

有上述的图片可以知道,好多重复的地方,例如gcc -c $< -o [email protected],并且此时的makefile不宜扩展,
为了方便扩展和简写,提出了规则模式
规则模式%o:%c
gcc -c $< -o [email protected]

下面开一个例子来理解:
一个简单的makefile制作

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-06-07
  • 2021-11-23
  • 2021-11-23
  • 2021-08-03
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-09-11
  • 2021-11-18
  • 2022-12-23
  • 2021-10-18
  • 2022-12-23
相关资源
相似解决方案