五、让make自动推导
2013-10-11 15:44
176 查看
GNU的make很强大,它可以自动推导文件以及文件依赖关系后面的命令,于是我们就没必要去在每一个[.o]文件后都写上类似的命令,因为,我们的make会自动识别,并自己推导命令。
只要make看到一个[.o]文件,它就会自动的把[.c]文件加在依赖关系中,如果make找到一个whatever.o,那么whatever.c,就会是whatever.o的依赖文件。并且 cc -c whatever.c 也会被推导出来,于是,我们的makefile再也不用写得这么复杂。我们的是新的makefile又出炉了。
objects = main.o kbd.o command.o display.o \
insert.o search.o files.o utils.o
edit : $(objects)
cc -o edit $(objects)
main.o : defs.h
kbd.o : defs.h command.h
command.o : defs.h command.h
display.o : defs.h buffer.h
insert.o : defs.h buffer.h
search.o : defs.h buffer.h
files.o : defs.h buffer.h command.h
utils.o : defs.h
.PHONY : clean
clean :
rm edit $(objects)
这种方法,也就是make的“隐晦规则”。上面文件内容中,“.PHONY”表示,clean是个伪目标文件。
关于更为详细的“隐晦规则”和“伪目标文件”,我会在后续给你一一道来。
只要make看到一个[.o]文件,它就会自动的把[.c]文件加在依赖关系中,如果make找到一个whatever.o,那么whatever.c,就会是whatever.o的依赖文件。并且 cc -c whatever.c 也会被推导出来,于是,我们的makefile再也不用写得这么复杂。我们的是新的makefile又出炉了。
objects = main.o kbd.o command.o display.o \
insert.o search.o files.o utils.o
edit : $(objects)
cc -o edit $(objects)
main.o : defs.h
kbd.o : defs.h command.h
command.o : defs.h command.h
display.o : defs.h buffer.h
insert.o : defs.h buffer.h
search.o : defs.h buffer.h
files.o : defs.h buffer.h command.h
utils.o : defs.h
.PHONY : clean
clean :
rm edit $(objects)
这种方法,也就是make的“隐晦规则”。上面文件内容中,“.PHONY”表示,clean是个伪目标文件。
关于更为详细的“隐晦规则”和“伪目标文件”,我会在后续给你一一道来。
相关文章推荐
- Linux之Makefile(make自动推导)
- make自动推导规则
- Makefile学习之让make自动推导
- 让make自动推导
- 跟我一起写Makefile(4)--- 让make自动推导+另类风格的makefile
- 关于在Ubuntu的终端上自动编译程序,使用GNU make.
- 自动生成 Makefile 的全过程详解! automake/autoconf 入门
- IDEA自动编译不用每次make
- 类模板为什么不能自动推导数据类型
- 一步一步写Makefile(1):概念,变量,自动推导,Makefile相互引用
- makefile 可以自动推导生成.o规则
- make自动生成依赖文件的两种形式
- 自动生成 Makefile 的全过程详解! automake/autoconf 入门(转)
- IDEA自动编译不用每次make
- c++ lambda返回类型自动推导的一些需要注意的地方
- makefile详解 自动推导 五
- IDEA 保存后自动编译(自动Make)
- make自动生成依赖文件的两种形式
- C++14尝鲜:函数返回类型自动推导
- 一个简单的执行程序的GNU automake自动生成Makefile的方法及案例