網頁

2021/9/6

Golang go build 作用

Go語言的go build的用途如下。


go build用來編譯package原始碼和依賴,若package有main package則產生一個可執行檔。


例如專案目錄結構如下:

go-demo/
├── go.mod
├── go.sum
└── main.go

go.mod內容如下:

go.mod

module abc.com/demo

go 1.16

專案根目錄的go.mod的module path為abc.com/demo,且有一main package(main.go),則在專案根目錄輸入go build abc.com/demo會把package abc.com/demo的原始碼及依賴編譯為一個可執行檔並輸出在當下目錄,執行檔名稱為module名稱即demo。在macOS、linux產生的執行檔為demo;在Windows為demo.exe

~/.../go-demo$ go build abc.com/demo

執行後的目錄結構如下,多了一個可執行檔demo

go-demo/
├── demo
├── go.mod
├── go.sum
└── main.go

在macOS、linux輸入./demo即可執行demo執行檔。

~/.../go-demo$ ./demo

go build若不指定package,則搜尋所在目錄或父目錄中的go.mod的module為build對象。

~/.../go-demo$ go build

若執行go build的目錄中沒有main package,則僅會對此目錄中的原始碼進行編譯而不產生任何結果,僅用來確認是否能正確編譯。

若執行go build的目錄中有main package,則會產生可執行檔在當下目錄。


若要把編譯的可執行檔輸出到指定位置及自訂名稱,可使用-o參數。例如下面把可執行檔輸出到所在目錄下的build/demo(指定目錄不存在會自動建立)。

~/.../go-demo$ go build -o ./build/demo

執行後目錄結構如下,可看到輸出的build/demo

go-demo/
├── build/
│   └── demo
├── go.mod
├── go.sum
└── main.go


沒有留言:

張貼留言