go 命令

go 命令

go build

這個命令主要用於測試編譯。在包的編譯過程當中,會同時編譯與之相關聯的包。linux

  • 普通包: 若是你須要在$GOPATH/pkg 下生成相應的文件,那就得執行 go install 了。
  • main包: 它就會在當前目錄下生成一個可執行文件,若是你須要在$GOPATH/bin 下生成相應的文件,須要執行 go install,或者使用 go build -o 路徑/a.exe

建議使用 -gcflags "-N -l" 參數關閉編譯器代碼優化和函數 內聯,避免斷點和單步執行沒法準確對應源碼行,避免小函數和局部變量被優化掉。-o 指定存放位置。git

go build -gcflags "-N -l" -o test test.gogithub

  • 只編譯一個文件, go build 後加上文件名,如go build a.go
  • 默認使用package名,指定名用-o 參數
  • 忽略 "_" 和 "." 開頭的文件
  • 針對不一樣系統,能夠根據不一樣的操做系統後綴來命名文件。

如一個讀取數組的程序,它對於不一樣的操做系統可能有以下幾個 源文件:windows

array_linux.go 
array_darwin.go 
array_windows.go 
array_freebsd.go

go build 的時候會選擇性地編譯以系統名結尾的文件(linux、darwin、windows、freebsd)。 例如 Linux 系統下面編譯只會選擇 array_linux.go 文件,其它系統命名後綴文件所有忽略。數組

go clean

這個命令是用來移除當前源碼包裏面編譯生成的文件。這些文件包括瀏覽器

_obj/  舊的 object 目錄,由 Makefiles 遺留
_test/  舊的 test 目錄,由 Makefiles 遺留
_testmain.go  舊的 gotest 文件,由 Makefiles 遺留
test.out  舊的 test 記錄,由 Makefiles 遺留
build.out  舊的 test 記錄,由 Makefiles 遺留
*.[568ao]  object 文件,由 Makefiles 遺留


DIR(.exe) 由 go build 產生
DIR.test(.exe) 由 go test -c 產生
MAINFILE(.exe) 由 go build MAINFILE.go 產生

我通常都是利用這個命令清除編譯文件,而後 github 遞交源碼,在本機測試的時候這些編 譯文件都是和系統相關的,可是對於源碼管理來講不必ide

go fmt

格式化代碼,通常用不到。函數

go get 拉取代碼

用來動態獲取遠程代碼包的,目前支持的有 BitBucket、GitHub、Google Code 和 Launchpad。測試

這個命令在內部實際上分紅了兩步操做:第一步是下載源碼包,第二步是 執行 go install。優化

go install

這個命令在內部實際上分紅了兩步操做:第一步是生成結果文件(可執行文件或者.a 包), 第二步會把編譯好的結果移到$GOPATH/pkg 或者 $GOPATH/bin。

go test

自動讀取源碼目錄下面名爲*_test.go 的文件,生成並運行測試用的可執行文件。

go doc

查看對應包的文檔,如 執行 go doc net/http 查看http包裏面的函數.

通常使用ide 直接進去看,通常不這麼用。

godoc -http=:端口號,配置GOPATH. 如 godoc -http=:8080, 瀏覽器中訪問 http://localhost:8080,查看本地和本身寫的文檔

go doc fmt Printf

go fix

用來修復之前老版本的代碼到新版本,例如 go1 以前老版本的代碼轉化到 go1

go version

查看 go 當前的版本

go env

查看當前 go 的環境變量

go list

列出當前所有安裝的 package

go run

編譯並運行 Go 程序

相關文章
相關標籤/搜索