golang編譯的方法:
1、使用go build命令編譯
go build命令用于編譯我們指定的源碼文件或代碼包以及它們的依賴包。
例如,如果我們在執(zhí)行go build命令時不后跟任何代碼包,那么命令將試圖編譯當前目錄所對應的代碼包。例如,我們想編譯goc2p項目的代碼包logging。其中一個方法是進入logging目錄并直接執(zhí)行該命令:
hc@ubt:~/golang/goc2p/src/logging$ go build
因為在代碼包logging中只有庫源碼文件和測試源碼文件,所以在執(zhí)行go build命令之后不會在當前目錄和goc2p項目的pkg目錄中產生任何文件。
2、使用go install命令編譯
go install 只是將編譯的中間文件放在 GOPATH 的 pkg 目錄下,以及固定地將編譯結果放在 GOPATH 的 bin 目錄下。
這個命令在內部實際上分成了兩步操作:第一步是生成結果文件(可執(zhí)行文件或者 .a 包),第二步會把編譯好的結果移到 $GOPATH/pkg 或者 $GOPATH/bin。
使用 go install 來執(zhí)行代碼,參考下面的 shell:
$ export GOPATH=/home/davy/golangbook/code $ go install chapter11/goinstall
golang 的go build、go install 命令都是可生成可實行文件。
go install 和 go build 在沒有參數時運行,都會在當前目錄下編譯,如果當前目錄是軟件主程序(package main)
go build 會生成可實行文件放在當前目錄中,go install 則會把它放到 $GOPATH/bin 中。
go install 還會把導入的依賴包編譯到 $GOPATH/pkg,并緩存,如果包未做更改,下次編譯則直接使用緩存。 go build 命令加參數 -i 也能達到go install 的效果。