換Make來構建你的Go語言項目吧

看這篇文章以前,你是否打包Go語言開發的項目時,是直接在命令行輸入:linux

go build .
複製代碼

在開發調試時是不是:bash

go run main.go
複製代碼

而後看到開源的Go語言項目在運行時倒是:工具

make build
複製代碼

或者ui

make install
複製代碼

咱們打包運行這個過程,還有一個更加貼切的詞語叫作構建項目。spa

今天給你們介紹下Makefile這個廣爲使用的構建工具,他是開源的,不單單適用於Go當中,C語言的項目或者C++的項目等一樣都適用。命令行

01 make簡介

在軟件開發中,make一般被視爲一種軟件構建工具。該工具主要經由讀取一種名爲「makefile」或「Makefile」的文件來實現軟件的自動化建構。3d

它會經過一種被稱之爲「target」概念來檢查相關文件之間的依賴關係,這種依賴關係的檢查系統很是簡單,主要經過對比文件的修改時間來實現。調試

在大多數狀況下,咱們主要用它來編譯源代碼,生成結果代碼,而後把結果代碼鏈接起來生成可執行文件或者庫文件。code

不少開源項目裏面都在用到cdn

這是最近比較火的以太坊上在GitHub上的源碼截圖,其餘的我就再也不截圖了,接下來給你們介紹下怎麼使用它開構建咱們的項目。

02 安裝

若是你是mac的系統,系統是自帶了的,若是是linux就須要本身安裝下make,命令很簡單。

centons系統的make安裝命令:

yum install -y make
複製代碼

03 建立配置文件

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

main.go裏面的源碼以下:

和咱們以往的項目沒啥區別,就多了一個Makefile文件,若是要使用Makefile去構建你項目,就須要在你的項目裏面新建這個Makefile文件。

這裏我貼一個簡單的Makefile文件的源碼:

BINARY_NAME=App
run:
	go build -o bin/$(BINARY_NAME) -v
	./bin/$(BINARY_NAME)
複製代碼

解釋下上面各行的意思:

  • 第一行,聲明瞭一個變量BINARY_NAME他的值是App,方便後面使用
  • 第二行,聲明一個 target,其實你能夠理解成一個對外的方法
  • 第三行,這就是這個target被調用時執行的腳本,這行就是build這個項目,編譯後的二進制文件放在當前工程根目錄下的bin目錄下,名字是變量BINARY_NAME的值
  • 第四行,這一行就是直接執行當前bin目錄下的二進制文件

注意: 第三行,第四行前面必定要用tab鍵縮進,否者會報下面的錯:

Makefile:3: *** missing separator.  Stop.
複製代碼

04 開始構建

咱們打開咱們的終端,直接執行:

make run
複製代碼

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

好了,此次就給你們分享到這裏,後面會繼續深刻。

相關文章
相關標籤/搜索