Go使用Makefile構建


我們平常很多時候都是直接在命令行輸入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

工程結構

我這里新建了一個工程,工程目錄是這樣:

image

main.go里面的源碼如下:

image

就多了一個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

就開始構建了,效果如下:

image

好了,這次就給大家分享到這里,Makefile的功能很強大,這里只是講了一丟丟。祝大家有個愉快的周末!

推薦閱讀文獻

  • 跟我一起寫Makefile

  • Make 命令教程- 阮一峰的網絡日志


歡迎您關注程序員同行者訂閱號,程序員同行者是一個技術分享平台,主要是運維自動化開發:linux、python、django、saltstack、redis、golang、docker、kubernetes、vue等經驗分享及經驗交流。


**趁現在,關注我們 **

image

牛人並不可怕,可怕的是牛人比我們還努力!

如果您覺得不錯,請別忘了轉發、分享、點贊讓更多的人去學習, 您的舉手之勞,就是對小編最好的支持,非常感謝!

image


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM