在Golang开发过程中,为了减少不断重复手动执行命令的操作,我们可以用makefile来实现“自动化编译”。它就像一个shell脚本一样,告诉机器如何编译。我们只需要一个make命令即可搞定编译的问题,极大的提高软件开发的效率。
工作方式
在默认方式下,我们只要输入make命令,那么make会在当前目录下寻找名字叫“Makefile”或“makefile”的文件,然后根据文件中的依赖关系,链接对应文件。它会一层又一层的去找文件的依赖关系,直到最终编译出第一个目标文件。在找寻的过程中,如果出现错误,比如最后被依赖的文件找不到,那么make就会直接退出。具体步骤如下:
- 读入所有的Makefile
- 读入被include的其他Makefile
- 初始化文件中的变量
- 推到隐晦规则,并分析所有规则
- 为所有的目标文件创建依赖关系链
- 根据依赖关系,决定哪些目标要重新生成
- 执行生成命令
下面展示一个简单的makefile示例,了解它们的语法规则以及学习如何在Golang项目中使用它们。
# Go parameters
VERSION=1.9.2
GOCMD=go
GORUN=$(GOCMD) run
run: