go build和go install的區別介紹
阿新 • • 發佈:2020-12-15
go build:
go build 用於編譯包生成可執行檔案,必須有main包才可以
go install:
go install 的作用有兩個:主要用來生成庫和工具,(如果有main包)編譯後生成的可執行工具檔案放到 bin 目錄、$GOPATH/bin,編譯後的庫檔案放到 pkg 目錄下($GOPATH/pkg)
補充:go build 命令
簡介
1、用於編譯原始碼檔案或程式碼包
-編譯非命令原始碼檔案不會產生任何結果檔案
-編譯命令原始碼檔案會在該命令的執行目錄中生成一個可執行檔案
2、執行該命令且以若干原始碼檔案作為引數時,只有這些檔案會被編譯
-注意列出程式碼執行所需的全部原始碼檔案,否則可能產生編譯錯誤
3、執行該命令且不追加任何引數時,它會試圖把當前目錄作為程式碼包並編譯
4、執行該命令且以程式碼包的匯入路徑作為引數時,該程式碼包及其依賴會被編譯
-加入-a標記後所有涉及到的程式碼包都會被重新編譯
-不加入-a標記,則只會編譯歸檔檔案中不是最新的程式碼包
使用
編譯原始碼檔案:go build [fileName].go
編譯程式碼包:go build [程式碼包的匯入路徑]
常見標記
標記 | 描述 |
---|---|
-o | 指定輸出檔案。 |
-a | 強行對所有涉及到的程式碼包(包括標準庫中的程式碼包)進行重新構建,即使它們已經是最新的了。 |
-n | 列印構建期間所用到的其它命令,但是並不真正執行它們。 |
-p n | 構建的並行數量(n)。預設情況下並行數量與CPU數量相同。 |
-race | 開啟資料競爭檢測。此標記目前僅在linux/amd64、darwin/amd64和windows/amd64平臺下被支援。 |
-v | 打印出被構建的程式碼包的名字。 |
-work | 打印出臨時工作目錄的名字,並且取消在構建完成後對它的刪除操作。 |
-x | 打印出構建期間所用到的其它命令。 |
例如:
go build -a [程式碼包的匯入路徑]
以上為個人經驗,希望能給大家一個參考,也希望大家多多支援我們。如有錯誤或未考慮完全的地方,望不吝賜教。