標籤:文法 image 編譯過程 編譯 執行檔案 安裝 get 1.4 注意
一。命令基礎1. go run :
用於運行命令源碼檔案(如:go run helloworld.go)
只能接受一個命令源碼檔案以及若干個庫源碼檔案作為檔案參數
其內部操作步驟:
(1)先編譯源碼檔案再運行
先會編譯作為參數的源碼檔案-》編譯結果放入臨時檔案夾中-》運行編譯的結果。
編譯結果包括:命令源碼檔案(.go)和編譯後產生的可執行檔和編譯後所產生的歸檔檔案(.a)
樣本:
go run helloworld.go -p ~goc2p/src/helper/ //列印目錄
go run常用標記:
-a:強制編譯相關代碼,不論它們的編譯結果是否已是最新的。(go run -a xx.go)
如當前有一個命令源碼檔案,匯入程式碼封裝A,程式碼封裝A在之前已編譯過,且在編譯後,程式碼封裝A沒有產生任何變化,則GO是不會再編譯的。加-a強制再編譯。
-n:列印編譯過程中所需啟動並執行命令,但不真正執行它們。(go run -n xx.go)
-p n :並行編譯,其中n為並行的數量 (n最好為邏輯CPU個數) (go run -p n xx.go)
-v:列出被編譯程式碼封裝的名稱(go run -v xx.go)
-a -v:列出所有被編譯的程式碼封裝名稱
注意:1.3中的所有:包含GO語言內建的標準庫的程式碼封裝
1.4中的所有:不包含GO語言內建的標準庫的程式碼封裝
-work:顯示編譯時間建立的臨時工和目錄的路徑,並且不刪除它。
-x:列印編譯過程中所需啟動並執行命令 (與-n相似)
-x:列印編譯過程中所需的命令,並執行他們
-n:列印編譯過程中所需的命令,但並不執行他們
2.go build 和 go install
go build:
用於編譯源碼檔案或程式碼封裝
編譯非命令源碼(庫源碼)檔案不會產生任何結果檔案
編譯命令源碼檔案會在該命令的執行目錄中產生一個可執行檔
執行該命令且不追加任何參數時,它會試圖把目前的目錄作為程式碼封裝並編譯
執行該命令且以程式碼封裝的匯入路徑作為參數時,該程式碼封裝及其依賴會被編譯
加入-a標記後所有涉及到的程式碼封裝都會被重新編譯
不加入-a標記,則只會編譯歸檔檔案不是最新的程式碼封裝
執行該命令且以若干源碼檔案作為參數時,只有這些檔案會被編譯
go install:
用於編譯並安裝程式碼封裝或源碼檔案
安裝程式碼封裝會在當前工作區的pkg/<平台相關目錄>下產生歸檔檔案
安裝命令源碼檔案會在當前工作區的bin目錄或$GOBIN目錄下產生可執行檔
執行該命令且不追加任何參數時,它會試圖把目前的目錄作為程式碼封裝並安裝
執行該命令且以程式碼封裝的匯入路徑作為參數時,該程式碼封裝及其依賴會被安裝
執行該命令且以命令源碼檔案及相關庫源碼檔案作為參數時,只有這些檔案會被編譯並安裝
3.go get
使用go get從遠程倉庫拉取代碼,會產生pkg目錄(存放歸檔檔案, .a尾碼)
go get 常用標記:
二。Go文法
Go語言入門篇-命令 與 文法