工程管理工具:解决大型项目中的模块之间的依赖问题。

Makefile,是一个大概40 年前的技术,实际开发中不会手写Makefile,会用一些比如CMake 之类的工具来生成。

这个笔记只是简单地使用。

上手

1
2
3
4
5
6
# 格式
目标:依赖
命令
# 栗子 Makefile/makefile
test:test.c
gcc test.c -g -o test

终端输入make后的大体执行流程:

  1. 现在当前目录下查找 Makefile/makefile 文件
  2. 找到要生成的目标(决定是否要真的生成,这是依赖文件和目标文件的acm时间来决定的)
  3. 检查依赖的文件是否都存在
  4. 执行命令

如果Makefile 中包含了多个目标,直接敲make 默认生成第一个目标。

1
2
3
4
.PHONY:clean # 声明clean 为一个伪目标
clean:
rm -f test
# make clean

clean 这样的目标,知识为了执行一个动作,而不是为了生成文件,如果此时在目录中碰巧有一个叫clean 的文件,就会影响到动作的执行。所以要加.PHONY:clean 来声明clean 为一个为目标。

构建工具

CMake:开原世界中广泛使用。
Blaze(火焰刀):谷歌推出的,比较重量级。