Makefile 的核心内容

来源:互联网 发布:js window.url 编辑:程序博客网 时间:2024/05/22 12:44
1.Makefile的规则

```target... : prerequisites...

command......`


target就是一个目标文件,可以是object文件,也可以是可执行文件等,或者是一个标签(伪目标),command是需要执行的shell命令,cc, echo, mkdir ...target这一个或多个目标文件依赖于一个或多个 prerequisites, 如果prerequisites中有一个比target新的话command就会被执行,这里的新指的是文件生成时的时间戳,可以使gcc时生成的.o文件,或者是touch出来的文件

eg:



现在target的时间比printf.c的时间新,make时候不会执行下面的命令



可以重新touch‘ printf.c文件,更新时间戳


2.伪目标

伪目标不是一个文件,只是一个target

伪目标没有时间戳,永远都是最新的,所以都会执行,比如clean, 我们每次make clean 的时候它都会执行下面的command


3.在Makefile中使用命令时加 “-” 可以忽略命令的错误返回


例如下面的例子,目录中已经存在MF这个目录了,我们再次mkdir的时候就会报错,打断makefile的执行






加上"-"就会忽略这个错误继续执行





Makefile就是利用这种依赖关系来判断是否执行下面的命令,来编译管理工程的


4.make -C 选项


表示进入指定目录执行make