我們平常很多時候都是直接在命令行輸入go build進行編譯的:
go build .
或者測試使用go run運行項目
go run main.go
我看有很多大型開源項目都是如下方式:
make build
或者是這樣
make install
我們打包運行這個過程,還有一個更加貼切的詞語叫做構建項目。
Makefile介紹
Makefile 是和 make 命令一起配合使用的。它是開源的構建工具,很多大型項目的編譯都是通過 Makefile 來組織的。
安裝make
centons系統的make安裝命令:
yum install -y make
工程結構
我這里新建了一個工程,工程目錄是這樣:
main.go
里面的源碼如下:
就多了一個Makefile文件,如果要使用Makefile去構建你項目,就需要在你的項目里面新建這個Makefile文件。
這里我貼一個簡單的Makefile
文件的源碼:
BINARY_NAME=hello
build:
go build -o $(BINARY_NAME) -v
./$(BINARY_NAME)
解釋下上面各行的意思:
-
第一行,聲明了一個變量
BINARY_NAME
他的值是hello
,方便后面使用 -
第二行,聲明一個
target
,其實你可以理解成一個對外的方法 -
第三行,這就是這個
target
被調用時執行的腳本,這行就是build這個項目,編譯后的二進制文件放在當前工程目錄下,名字是變量BINARY_NAME
的值 -
第四行,這一行就是直接執行當前目錄下的二進制文件
注意:
第三行,第四行前面一定要用tab
鍵縮進,否者會報下面的錯:
Makefile:3: *** missing separator. Stop.
構建
我們打開我們的終端,直接執行:
make build
就開始構建了,效果如下:
好了,這次就給大家分享到這里,Makefile的功能很強大,這里只是講了一丟丟。祝大家有個愉快的周末!
推薦閱讀文獻
-
跟我一起寫Makefile
-
Make 命令教程- 阮一峰的網絡日志
歡迎您關注程序員同行者訂閱號,程序員同行者是一個技術分享平台,主要是運維自動化開發:linux、python、django、saltstack、redis、golang、docker、kubernetes、vue等經驗分享及經驗交流。
**趁現在,關注我們 **
牛人並不可怕,可怕的是牛人比我們還努力!
如果您覺得不錯,請別忘了轉發、分享、點贊讓更多的人去學習, 您的舉手之勞,就是對小編最好的支持,非常感謝!