借助Makefile,我们在编译过程中不再需要每次都自动输入编译命令和编译参数,可以大大简化项目编译过程。
回到底部
制作简介
make 是一个手动创建工具,它将在当前目录中搜索 Makefile 或 makefile 文件。 如果对应的文件存在,也会按照其中定义的规则完成创建任务。
回到底部
Makefile介绍
我们可以简单的理解Makefile,它定义了一个工程文件的编译规则。 使用Makefilewindows make命令编译源码,我们在编译过程中不再需要每次都自动输入编译命令和编译参数,可以大大简化项目编译过程。 同时,Makefile还可以用来确定项目中具体的编译规则和流程。 Makefile 文件在许多开源项目中都有定义。
本文不会详细介绍Makefile的各种规则windows make命令编译源码,只会给出Go项目中常用的Makefile的示例。 有关Makefile的详细信息,建议阅读Makefile教程。
规则概述
Makefile 由多个规则组成。 每个规则主要由两部分组成,即依赖关系和执行的命令。
其结构如下:
[target] ... : [prerequisites] ...
[command]
...
...
在:
举个反例:
build:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o xx
回到底部
例子
.PHONY: all build run gotool clean help
BINARY="bluebell"
all: gotool build
build:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o ${BINARY}
run:
@go run ./
gotool:
go fmt ./
go vet ./
clean:
@if [ -f ${BINARY} ] ; then rm ${BINARY} ; fi
help:
@echo "make - 格式化 Go 代码, 并编译生成二进制文件"
@echo "make build - 编译 Go 代码, 生成二进制文件"
@echo "make run - 直接运行 Go 代码"
@echo "make clean - 移除二进制文件和 vim swap files"
@echo "make gotool - 运行 Go 工具 'fmt' and 'vet'"
在: