過渡(transition) 動畫(animation)
阿新 • • 發佈:2020-10-26
make
make
是一個構建自動化工具,會在當前目錄下尋找Makefile
或makefile
檔案。如果存在相應的檔案,它就會依據其中定義好的規則完成構建任務。
makefile
什麼是makefile?或許很多Winodws的程式設計師都不知道這個東西,因為那些Windows的IDE都為你做了這個工作,但我覺得要作一個好的和professional的程式設計師,makefile還是要懂。這就好像現在有這麼多的HTML的編輯器,但如果你想成為一個專業人士,你還是要了解HTML的標識的含義。特別在Unix下的軟體編譯,你就不能不自己寫makefile了,會不會寫makefile,從一個側面說明了一個人是否具備完成大型工程的能力
規則概述
Makefile
由多條規則組成,每條規則主要由兩個部分組成,分別是依賴的關係和執行的命令。
其結構如下所示:
[target] ... : [prerequisites] ...
<tab>[command]
...
...
其中:
- targets:規則的目標
- prerequisites:可選的要生成 targets 需要的檔案或者是目標。
- command:make 需要執行的命令(任意的 shell 命令)。可以有多條命令,每一條命令佔一行。
舉個例子:
build: CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o xx
示例
.PHONY: all build run gotool clean help
BINARY="coursemanager"
all: 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'"
參考文章: