标签:
本文摘自 : 跟我一起写 Make?le
makefile文件一般保存名称为makefile或者Makefile
(一)make的规则:
1. 如果这个工程没有编译过,那么我们的所有 c 文件都要编译并被链接。
2. 如果这个工程的某几个 c 文件被修改,那么我们只编译被修改的 c 文件,并链接目标程序。
3. 如果这个工程的头文件被改变了,那么我们需要编译引用了这几个头文件的 c 文件,并链接目标程序。
(二)makefile的语法规则(注意在makefile中指令必须以tab键开头,在vim中设定:set tabstop=4):
target ... : prerequisites ... //冒号前是需要生成的文件,冒号后面是生成这个文件所需要的文件。(文件依赖)
command ... //只有在冒号后面的文件比冒号前的文件新,这行指令才会被执行。任意的 shell 命令
target 可以是一个 object file(目标文件),也可以是一个执行文件,还可以是一个标签(label)。对于标签这种特性,在后续的“伪目标”章节中会有叙述。
例如:
edit : main.o kbd.o command.o display.o insert.o search.o files.o utils.o
cc -o edit main.o kbd.o command.o display.o\ //反斜杠(\)是换行符的意思。
insert.o search.o files.o utils.o
上面的edit (target)就是由冒号后面的.o文件(prerequisites)生成。
第二行中的cc是编译指令,只有在.o文件中有比edit新的文件存在,第二行的指令行才会被执行,这样可以减少编译时间。
标签:
原文地址:http://www.cnblogs.com/jiahu-Blog/p/4560156.html