1. 使用 makefile 的原因
假如每次都手动输入, 可能会写出这样的编译命令
?
1 2 3 4 5 6 7 |
|
那么, 可不可以将这个命令写成 shell 脚本呢, 这样就不需要费事打命令了
但是, 使用脚本有一个弊端, 假设只有一个源文件被修改, 那么 shell 命令会把整个项目重新编译一遍
所以, 为了简化编译同时兼顾高效, make 命令应运而生, 但用 make 需要先编写 makefile 文件, makefile 告诉 make
编译规则
2. makefile 编写规则
makefile 注释以 # 开头
规则
target: componet // 第一行, 依赖关系
TAB rules // 第二行, 规则
一个 makefile 例子
?
1 2 3 4 5 6 7 8 9 |
|
3. makefile 文件的简化
三个常用变量
[email protected] 目标文件
$^ 所有依赖对象
$< 第一个依赖文件
有这三个变量, 上面的 makefile 可以简化为
?
1 2 3 4 5 6 7 8 9 |
|
..c.o: makefile 的缺省规则, 这个规则表示所有的 .o 文件都依赖于响应的 .c 文件
这样, makefile 又可以简化为
?
1 2 3 4 5 |
|
4. linux 下, makefile 编写带 boost 程序
Reference
[1] http://blog.csdn.net/livelylittlefish/article/details/3854220
[2]
makefile 学习(一),码迷,mamicode.com