go build只對main包有效,在當前目錄編譯生成壹個可執行的二進制文件(依賴包生成的靜態庫文件放在$GOPATH/pkg)。
go install壹般生成靜態庫文件放在$GOPATH/pkg目錄下,文件擴展名a,如果為main包,則會在$GOPATH/bin 生成壹個可執行的二進制文件。
go build
通過go build加上要編譯的Go源文件名,我們即可得到壹個可執行文件,默認情況下這個文件的名字為源文件名字去掉.go後綴。
$ go build hello.go
$ lshello hello.go
當然我們也 可以通過-o選項來指定其他名字:
$ go build -o mygo hello.go
$ lsmygo hello.go
如果我們在go-examples目錄下直接執行go build命令,後面不帶文件名,我們將得到壹個與目錄名同名的可執行文件:
$ go build
$ lsgo-examples hello.go
go install
與build命令相比,install命令在編譯源碼後還會將可執行文件或庫文件安裝到約定的目錄下。
1、go install編譯出的可執行文件以其所在目錄名(DIR)命名
2、go install將可執行文件安裝到與src同級別的bin目錄下,bin目錄由go install自動創建
3、go install將可執行文件依賴的各種package編譯後,放在與src同級別的pkg目錄下