go命令工具

2021-08-13 16:02:50 字數 3498 閱讀 7057

1、go build

這個命令可以直接使用,也可以帶上**包或原始碼檔案使用。

如果是直接使用,表示試圖編譯當前目錄所對應的**包,如果當前目錄不是乙個有效的**包(包含在 $gopath/src 目錄下)則會報錯;如果帶上**包名,則表示編譯指定的**包;如果帶上原始碼檔案,則表示編譯指定原始碼檔案。

go語言的原始碼檔案分為三類,包括命令原始碼檔案、庫原始碼 檔案和測試原始碼檔案。如果編譯的是命令原始碼檔案,或包含命令原始碼檔案的包(main包)時,編譯通過後會生成可執行檔案;反之則不會生成任何檔案,只是做檢查性編譯。

可以在執行 go build 命令時,加上一些標記,如:

-v 標記,可以把命令執行過程中構建的包名(包含編譯過程中依賴的包)列印出來,如果 go build 的是乙個原始碼檔案,則會列印出的包名為 command-line-arguments,這是編譯原始碼檔案時生成的虛擬包名,所以看到不用覺得奇怪。

-x 標記,可以列印編譯期間所用到的所有 shell 命令。

-o 標記,用來指定生成檔案的路徑和名稱。

-a 標記,強制重新編譯。

-buildmode=shared 標記,這個引數可以指定當前編譯生成的結果型別,如靜態庫和動態庫。go語言預設使用靜態編譯,好處是部署時非常簡單,但使用動態庫,可以減少分發包的大小,大家可以根據實際情況選擇。注意,目前在windows下尚不支援編譯成動態庫。

更多引數,請使用 go build -h 或 go help build 檢視。

這個命令可以直接使用,也可以帶上**包或原始碼檔案使用。

如果是直接使用,表示試圖編譯當前目錄所對應的**包,如果當前目錄不是乙個有效的**包(包含在 $gopath/src 目錄下)則會報錯;如果帶上**包名,則表示編譯指定的**包;如果帶上原始碼檔案,則表示編譯指定原始碼檔案。

go語言的原始碼檔案分為三類,包括命令原始碼檔案、庫原始碼 檔案和測試原始碼檔案。如果編譯的是命令原始碼檔案,或包含命令原始碼檔案的包(main包)時,編譯通過後會生成可執行檔案;反之則不會生成任何檔案,只是做檢查性編譯。

可以在執行 go build 命令時,加上一些標記,如:

-v 標記,可以把命令執行過程中構建的包名(包含編譯過程中依賴的包)列印出來,如果 go build 的是乙個原始碼檔案,則會列印出的包名為 command-line-arguments,這是編譯原始碼檔案時生成的虛擬包名,所以看到不用覺得奇怪。

-x 標記,可以列印編譯期間所用到的所有 shell 命令。

-o 標記,用來指定生成檔案的路徑和名稱。

-a 標記,強制重新編譯。

-buildmode=shared 標記,這個引數可以指定當前編譯生成的結果型別,如靜態庫和動態庫。go語言預設使用靜態編譯,好處是部署時非常簡單,但使用動態庫,可以減少分發包的大小,大家可以根據實際情況選擇。注意,目前在windows下尚不支援編譯成動態庫。

更多引數,請使用 go build -h 或 go help build 檢視。

這個命令可以直接使用,也可以帶上**包或原始碼檔案使用。

如果是直接使用,表示試圖編譯當前目錄所對應的**包,如果當前目錄不是乙個有效的**包(包含在 $gopath/src 目錄下)則會報錯;如果帶上**包名,則表示編譯指定的**包;如果帶上原始碼檔案,則表示編譯指定原始碼檔案。

go語言的原始碼檔案分為三類,包括命令原始碼檔案、庫原始碼 檔案和測試原始碼檔案。如果編譯的是命令原始碼檔案,或包含命令原始碼檔案的包(main包)時,編譯通過後會生成可執行檔案;反之則不會生成任何檔案,只是做檢查性編譯。

可以在執行 go build 命令時,加上一些標記,如:

-v 標記,可以把命令執行過程中構建的包名(包含編譯過程中依賴的包)列印出來,如果 go build 的是乙個原始碼檔案,則會列印出的包名為 command-line-arguments,這是編譯原始碼檔案時生成的虛擬包名,所以看到不用覺得奇怪。

-x 標記,可以列印編譯期間所用到的所有 shell 命令。

-o 標記,用來指定生成檔案的路徑和名稱。

-a 標記,強制重新編譯。

-buildmode=shared 標記,這個引數可以指定當前編譯生成的結果型別,如靜態庫和動態庫。go語言預設使用靜態編譯,好處是部署時非常簡單,但使用動態庫,可以減少分發包的大小,大家可以根據實際情況選擇。注意,目前在windows下尚不支援編譯成動態庫。

更多引數,請使用 go build -h 或 go help build 檢視。

這個命令用於編譯安裝,可以作用於 main 包和非 main 包,然後將編譯後的生成的執行檔案存放到工程的 bin 目錄下,將生成的歸檔檔案(即靜態鏈結庫)存放到工程的 pkg 目錄下。使用方式類似於 go build,可以在某個**包目錄下直接使用,也可以指定**包使用。

2、go clean

該命令可以刪除執行其它命令時產生的檔案和目錄

3、go doc

文件注釋相關,可以搭建本地go文件伺服器,包含自己的專案注釋

4、go env

用於列印go語言的環境資訊,如 gopath 是工作區目錄,goroot 是go語言安裝目錄,gobin 是通過 go install 命令生成可執行檔案的存放目錄(預設是當前工作區的 bin 目錄下),goexe 為生成可執行檔案的字尾

5、go bug

用於go語言除錯

6、go fix

7、go fmt

作用於**包,用於格式化**包中的**格式,注意不包含**包中的子**包。是 gofmt 的簡單封裝,相當於 gofmt -l -w ,更多資訊,請通過 gofmt -h 檢視。

8、go generate

通過掃瞄go原始碼中的特殊注釋來識別要執行的常規命令。了解go generate不是go build的一部分很重要。它不包含依賴關係分析,必須在執行go build之前顯式執行。它旨在由go package的作者使用,而不是其客戶端。

9、go get

10、go install

這個命令用於編譯安裝,可以作用於 main 包和非 main 包,然後將編譯後的生成的執行檔案存放到工程的 bin 目錄下,將生成的歸檔檔案(即靜態鏈結庫)存放到工程的 pkg 目錄下。使用方式類似於 go build,可以在某個**包目錄下直接使用,也可以指定**包使用。

11、go list

不加任何標記直接使用,是顯示指定包的匯入路徑,如 go list net/http 就顯示 net/http。

該命令加上 -json 標記可以顯示完整資訊

12、go run

編譯並執行,只能作用於命令原始碼檔案,一般用於開發中快速測試。

13、go test

進行單元測試的工具,單元測試**建議與被測試**放在同乙個**包中,並以 "_test.go" 為後期,測試函式建議以 "test" 為名稱字首。該命令可以對**包進行測試,也可以指定某個測試**檔案執行(要一併帶上被測試**檔案)

14、go tool

go工具,go tool pprof效能檢查工具,   go tool cgo跟c語言和go語言有關的命令

15、go version

列印go版本

16、go vet

靜態檢查工具,一般專案快完成時進行進行優化時需要

Go命令列工具

ubuntu安裝配置好go環境後,終端執行 go 則會顯示出一些常用命令。其中有一些是在編譯安裝信令伺服器時使用到的。執行 go 後,go command arguments the commands are build compile packages and dependencies clean...

Go 編譯 工具

go 的工具鏈非常豐富,從獲取原始碼 編譯 文件 測試 效能分析,到原始碼格式化 原始碼提示 重構工具等應有盡有 go 的編譯速度非常快 併發編譯 並且以 gopath 作為工作目錄和一套完整的工程目錄結構規則 gopath 需要提前配置好 使用 go build 命令將原始碼編譯為可執行檔案,有很...

Go語言命令列工具介紹 3

用於編譯原始碼檔案 包 依賴包 1.1 編寫源 test.gopackage main import fmt time func main 1.2 執行 go buildgo build test.go將 test.go 源 編譯完成之後,src目錄下會新增編譯完成之後的test可執行檔案,如下圖所...