Makefile入门

Make是什么

make是一个构建自动化工具,会在当前目录下面寻找makefile或者Makefile文件,如果存在,会根据makefile的构建规则去完成构建

规则

Makefile是由多条规则组成,每条规则都以一个target(目标)开头,后跟一个:冒号,冒号后是这个目标的prerequisties(前置条件),紧接着新得一行,必须以一个tab作为开头,后面跟随command也就是你希望这一个target所执行的构建命令

[target] ... : [prerequisites] ...
<tab>[command]
    ...
    ...
  • target:一个目标代表一条规则,可以是一个或多个文件名。也可以是某个操作的名字(标签),称为伪目标(phony)
  • prerequisites:前置条件,这一项是可选参数。通常是多个文件名、伪目标。它的作用是 target 是否需要重新构建的标准,如果前置条件不存在或有过更新(文件的最后一次修改时间)则认为 target 需要重新构建
  • command:构建这一个 target 的具体命令集
    例如:
.PHONY: build clean tool lint help

all: build

build:
    go build -v .

tool:
    go tool vet . |& grep -v vendor; true
    gofmt -w .

lint:
    golint ./...

clean:
    rm -rf go-gin-example
    go clean -i .

help:
    @echo "make: compile packages and dependencies"
    @echo "make tool: run specified go tool"
    @echo "make lint: golint ./..."
    @echo "make clean: remove object files and cached files"

在这个文件中可以执行的命令有make all make tool make lint make clean make help
该文件中使用了.PHONY ,其作用是声明build、clean、tool、lint、help为为目标,声明了为目标之后,在执行相应的命令时,make就不会去检查相对应的文件,而只是每次都会运行标签对应的命令。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值