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