一个简单的makefile制作

    科技2022-07-20  122

    这个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

    注意事项: 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改变一下:

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

    有上述的图片可以知道,好多重复的地方,例如gcc -c $< -o $@,并且此时的makefile不宜扩展, 为了方便扩展和简写,提出了规则模式 规则模式%o:%c gcc -c $< -o $@ 下面开一个例子来理解:

    Processed: 0.011, SQL: 8