1. 程式人生 > 其它 >go常用命令

go常用命令

go常用命令

go常用命令

構建和安裝的物件有兩種:庫原始碼檔案和命令原始碼檔案
構建和安裝程式碼包的時候都會執行編譯、打包等操作,並且這些操作生成的任何檔案都會先被儲存到某個臨時的目錄中

2.1.go run 程式測試

  • go run 執行程式進行測試

2.2.go build 程式構建

  • 如果構建的是庫原始碼檔案,那麼操作後產生的結果檔案只會存在於臨時目錄中,這裡的構建的主要意義在於檢查和驗證
  • 如果構建的是命令原始碼檔案,那麼操作的結果檔案會被搬運到原始碼檔案所在的目錄中
  • 預設不會編譯目的碼包所依賴的那些程式碼包,如果被依賴的程式碼包的歸檔檔案 pkg 不存在,或者原始碼檔案有了變化,那它還是會被編譯
go build -a       強制編譯所有原始碼,包括依賴包
go build -i       編譯依賴的程式碼包並安裝它們的歸檔檔案
go build -x       除錯模式
go build -n       測試構建,並不會整的執行構建編譯操作
go build -v -a    檢視構建編譯的程式碼包名稱
go build -o xxx   指定構建的命令檔名稱

2.3.go install 程式安裝

  • 命令說明:該安裝操作會先執行構建,再進行連結,最後根據原始碼型別將結果檔案存放到指定目錄
1.對於庫原始碼檔案,結果檔案會存放到 $GOPATH/pkg 目錄下的對應子目錄中
2.對於命令原始碼檔案,結果檔案會存放到 $GOPATH/bin 目錄中,或者環境變數 $GOBIN 指向的目錄中

2.4.go get 下載程式

  • go get 命令詳解: https://github.com/hyper0x/go_command_tutorial/blob/master/0.3.md

  • 命令作用:下載安裝公共倉庫的目的碼包,並把它們安裝到環境變數 GOPATH 包含的第 1 工作區的相應目錄中

  • 如果存在環境變數 GOBIN ,那麼僅包含命令原始碼檔案的程式碼包會被安裝到 GOBIN 指向的那個目錄

go get -u           下載並安裝程式碼包,不論工作區中是否已存在它們。
go get -d           只下載程式碼包,不安裝程式碼包。
go get -fix         在下載程式碼包後先執行一個用於根據當前 Go 語言版本修正程式碼的工具,然後再安裝程式碼包。
go get -t           同時下載測試所需的程式碼包。
go get -insecure    允許通過非安全的網路協議下載和安裝程式碼包。HTTP 就是這樣的協議。

拓展1-第三方工具

- Go 語言官方提供的 go get 命令是比較基礎的,其中並沒有提供依賴管理的功能。
- 目前 GitHub 上有很多提供這類功能的第三方工具,比如 glide、gb 以及官方出品的 dep、vgo 等等,它們在內部大都會直接使用 go get

拓展2-簡化程式碼包匯入路徑

在需要變更儲存原始碼的程式碼倉庫或者程式碼包的相對路徑時為了讓程式碼包的遠端匯入路徑不受此類變更的影響,可以使用自定義的程式碼包匯入路徑

方法是:在該程式碼包中的庫原始碼檔案的包宣告語句的右邊加入匯入註釋,如下
package semaphore // import "golang.org/x/sync/semaphore"

# 這個程式碼包原本的完整匯入路徑是 github.com/golang/sync/semaphore 這與實際儲存它的網路地址對應的
# 該程式碼包的原始碼實際存在 GitHub 網站的 golang 組的 sync 程式碼倉庫的 semaphore 目錄下
# 而加入匯入註釋之後,用以下命令即可下載並安裝該程式碼包
go get -u golang.org/x/sync/semaphore

# golang.org 下的路徑 /x/sync/semaphore 並不是存放 semaphore 包的真實地址。我們稱之為程式碼包的自定義匯入路徑。
作者:天生帥才,歡迎部落格留言 聯絡:87482287(微Q同號) 出處:http://www.cnblogs.com/tssc/ 本文版權歸作者和部落格園共有,如需轉載請在文章頁面給出原文連結,否則保留追究法律責任的權利。