Makefile 的 VPATH 和 vpath

2016-1-18 chenhui Makefile

有时候我们的项目中有多个子目录,如下: root-     Makefile     src-         main.c     header-     ...

阅读全文>>

评论(0) 浏览(251)

Makefie 隐含规则

2016-1-18 chenhui Makefile

所谓的隐含规则,就是一些惯例,比如说 .c 文件编译成 .o 文件就不需要我们自己编写 gcc 命令,Make 会自动执行。隐含规则是为了方便编写 Makefile 而出现的。我个人认为,隐含规则没有存在的必要,其增加学习成本,而又少写不了几个字母,更何况现在还有自动生成 Makefile 的工具,徒增复杂度而已。 隐含规则的使用如下: foo.o:foo.c 这...

阅读全文>>

评论(0) 浏览(164)

Makefile 变量和宏

2016-1-18 chenhui Makefile

Makefile 和其他脚本语言一样,也可以定义变量,其定义和使用方法如下: .PHONY: clean obj := main.c hello: $(obj) gcc -o hello $(obj) clean: rm -rf hello 有时候我们能看到一些不一样的变量定义符号,有 ' := '、' = '、' += '、' ?= ' 这四种。 ...

阅读全文>>

评论(0) 浏览(205)

Makefile 伪目标

2016-1-18 chenhui Makefile

在 freehui.com/post/213 中我们讲到了一种 Makefile 的形式,那就是只有目标和命令,但不存在依赖,如下: clean: rm -rf *.o 一般来说,这种形式表示 clean 这个目标的目的是为了执行一些命令,看起来这么写没有太大的问题。但是,上文又说过,Make 会检查是否存在和目标同名的文件,如果存在,那么他就不会被执行。所以如果刚好目录里...

阅读全文>>

评论(0) 浏览(168)

Makefile 的组成

2016-1-17 chenhui Makefile

Makefile 的文件名一般是 "Makefile" 或者 "makefile",一个最简单的 Makefile 如下: hello: main.c gcc main.c -o hello 上面这个 Makefile 是一个最为简单的 Makefile,我们可以使用下面的命令来启动他。 make 他先检查当前文件下有没有 main.c 这个文件,如果有,就执行 gcc main...

阅读全文>>

评论(0) 浏览(222)

Copyright ©2015-2016 freehui All rights reserved