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
沒有留言:
張貼留言