简单Makefile
一个简单的Makefile,可以直接Copy使用; 一、用字符常量简化 Makefile文件: #定义常量 objects =main.o fun1.o #中间文件 cc=gcc #编译器 prom=main #输出文件 prom: $(objects) $(cc) $(objects) -o $(prom) main.o: main.c fun1.h $(cc) -c main.c -o main.o @echo 正在编译main文件 #前面加@避免重复输出信息 fun1.o: fun1.c fun1.h $(cc) -c fun1.c -o fun1.o @echo 正在编译其他文件 .PHONY: clean clean: -rm $(prom) $(objects) 文件夹结构: 二、更简化的写法 Makefile文件: obj=main.o fun1.o cc=gcc prom=main deps=fun1.h $(prom):$(obj) $(cc) -o $(prom) $(obj) %.o:%.c $(deps) $(cc) -c $< -o $@ 在这里,我们用到了几个特殊的宏。首先是 %.o:%.c,这是一个模式规则,表示所有的 .o 目标都依赖于与它同名的 .c 文件(当然还有 deps 中列出的头文件)。再来就是命令部分的 $< 和 $@,其中 $< 代表的是依赖关系表中的第一项(如果我们想引用的是整个关系表,那么就应该使用 $^),具体到我们这里就是 %.c。 而 $@ 代表的是当前语句的目标,即 %.o。这样一来,make 命令就会自动将所有的 .c 源文件编译成同名的 .o 文件。不用我们一项一项去指定了。整个代码自然简洁了许多。 ...