go語言常用命令之go build,run,clean, get, install, list, run, test等...
Go  /  管理員 發(fā)布于 9個月前   478
go build:用于編譯 Go 語言程序并生成可執(zhí)行文件。
它可以編譯 Go 源代碼成機器代碼,并將其打包成可執(zhí)行文件,方便在不同的操作系統(tǒng)上運行。
使用 go build 命令非常簡單,只需在終端中輸入 go build [文件名],
其中 [文件名] 是要編譯的 Go 源文件的文件名(不包括擴展名.go)。
如果不指定文件名,則默認編譯當前目錄下的所有 Go 源文件。
-o: output 指定生成的可執(zhí)行文件的名稱和路徑。
例如,使用 go build -o myapp 命令可以將生成的可執(zhí)行文件命名為 myapp。
-i: install 安裝作為目標的依賴關(guān)系的包(用于增量編譯提速)。
-mod: 指定使用的模塊模式。
該參數(shù)可以用于指定使用的模塊模式,例如使用 mod 或 vendor 模式。
go run:用于編譯并運行 Go 程序,適用于快速測試代碼片段。
它適用于快速測試小程序,不需要生成持久的可執(zhí)行文件。
-vet: 運行靜態(tài)代碼分析工具 vet。
使用該參數(shù)可以在編譯過程中運行 vet 工具,檢查代碼中的潛在問題。
-mod: 指定使用的模塊模式。
該參數(shù)可以用于指定使用的模塊支持方式
go test:用于運行測試代碼并生成測試報告。
它可以自動識別項目中的測試文件,并執(zhí)行其中的測試函數(shù),然后輸出測試結(jié)果。
-run: 指定要運行的測試用例的正則表達式。
使用該參數(shù)可以選擇性地運行符合指定正則表達式的測試用例。
-cover: 生成代碼覆蓋率報告。
使用該參數(shù)可以生成代碼覆蓋率報告,顯示測試代碼對被測試代碼的覆蓋情況。
-coverprofile: 指定生成的代碼覆蓋率文件的名稱和路徑。
使用該參數(shù)可以將生成的代碼覆蓋率報告保存到指定的文件中。
-covermode: 指定代碼覆蓋率的模式。
該參數(shù)可以用于指定代碼覆蓋率的計算方式。
-bench: 運行性能測試。
使用該參數(shù)可以運行性能測試,并輸出性能測試的結(jié)果。
-benchmem: 顯示內(nèi)存分配的統(tǒng)計信息。
使用該參數(shù)可以顯示性能測試過程中的內(nèi)存分配情況。
-benchtime: 指定性能測試的運行時間。
該參數(shù)可以用于指定性能測試的運行時間,例如設(shè)置為"10s"表示運行 10 秒。
-timeout: 指定測試的超時時間。
該參數(shù)可以用于指定測試的超時時間,例如設(shè)置為"5s"表示測試超過 5 秒將被終止。
-short: 運行短時間的測試。
使用該參數(shù)可以運行短時間的測試,例如跳過一些耗時較長的測試用例。
go get:用于下載并安裝依賴或項目。它支持下載第三方庫和更新項目依賴。
-d: 只下載包,不編譯或安裝。
-u: 更新已存在的包及其所有依賴到最新版本。
-t: 同時為測試包下載依賴。
-insecure: 允許使用不安全的 HTTPS 連接(不推薦,僅用于調(diào)試)。
-fix: 在安裝之前運行 go fix,修復(fù)已知的語法問題。
-mod: 指定使用的模塊模式,
如 -mod=readonly 表示在已有的 go.mod 文件中只讀取模塊信息,不允許更新
go mod:用于 Go 模塊支持,包括初始化、添加依賴等。
download 下載依賴的 module 到本地 cache(默認為 $GOPATH/pkg/mod 目錄)
edit 編輯 go.mod 文件
graph 打印模塊依賴圖
init 初始化當前文件夾, 創(chuàng)建 go.mod 文件
tidy 增加缺少的 module,刪除無用的 module
vendor 將依賴復(fù)制到 vendor 下
verify 校驗依賴
why 解釋為什么需要依賴
go version:用于查看 Go 當前的版本。
go env:用于查看當前 Go 的環(huán)境變量。
go list:用于列出當前全部安裝的 package。
go install:用于構(gòu)建包,并將編譯好的結(jié)果移到 $GOPATH/pkg 或者 $GOPATH/bin。
-trimpath: 在編譯時移除構(gòu)建路徑信息,以減小編譯結(jié)果的大小。
-mod: 指定使用的模塊模式,例如-mod=vendor用于使用vendor目錄中的依賴。
go clean:用于清除當前源碼包和關(guān)聯(lián)源碼包里面編譯生成的文件。
-i: 同時刪除與可執(zhí)行文件相關(guān)的安裝目錄。
-r: 遞歸刪除。該參數(shù)會刪除指定目錄及其子目錄下的文件。
-cache: 清理臨時文件和緩存文件。該參數(shù)會刪除項目目錄下生成的臨時文件和緩存文件。
-testcache: 清理測試結(jié)果緩存文件。該參數(shù)會刪除項目目錄下生成的測試結(jié)果緩存文件。
-modcache: 清理模塊緩存文件。該參數(shù)會刪除項目目錄下生成的模塊緩存文件。
go tool: 用于運行各種 Go 語言工具,主要的參數(shù)包括:
-n: 打印將要執(zhí)行的命令,但不執(zhí)行。
-x: 打印執(zhí)行的命令及其參數(shù)。
-V: 打印go tool和執(zhí)行命令的版本信息。
-e: 只有在命令執(zhí)行失敗時才打印輸出。
-json: 以JSON格式輸出結(jié)果。
常見的子命令:
cover: 測試覆蓋率分析工具。
fix: 代碼遷移工具,可以自動更新舊代碼到新語法。
fmt: 格式化Go代碼的工具。
vet: 源碼檢查工具,用于發(fā)現(xiàn)代碼錯誤。
doc: 顯示包的文檔。
pprof: 分析和查看分析數(shù)據(jù)。
trace: 編譯時跟蹤工具。
link: 鏈接器工具,查看二進制文件依賴。
addr2line: 轉(zhuǎn)換地址為文件/行號。
api: Go API 處理工具。
以下參數(shù)可用在 build, clean, get, install, list, run, test:
-a: 強制重新編譯所有依賴的包。
使用該參數(shù)可以確保所有依賴的包都被重新編譯,而不使用緩存的結(jié)果。
-n: 打印編譯過程中的命令,但不執(zhí)行。
使用該參數(shù)可以查看編譯過程中執(zhí)行的命令,但不實際執(zhí)行這些命令。
-p n: 并行構(gòu)建包的數(shù)量,
默認情況下 Go 會根據(jù)系統(tǒng) CPU 核心數(shù)自動調(diào)整這個值,但你可以通過此選項手動設(shè)定。
-race: 啟用數(shù)據(jù)競爭檢測,用于檢測并發(fā)程序中的數(shù)據(jù)競爭問題。
只支持 linux/amd64, freebsd/amd64, darwin/amd64 和 windows/amd64.
-work: 打印編譯過程中的臨時工作目錄。
使用該參數(shù)可以查看編譯過程中生成的臨時文件和目錄。
-v: 顯示詳細的日志信息,包括編譯和安裝過程中的詳細輸出。
-x: 打印編譯過程中的詳細信息。
使用該參數(shù)可以查看編譯過程中的詳細信息,包括編譯器和鏈接器的命令。和 -n 的結(jié)果類似,只是這個會執(zhí)行。
-ldflags: 指定鏈接時的標志,用于傳遞額外的參數(shù)給鏈接器。
例如設(shè)置可執(zhí)行文件的版本信息等。
'-s -w': 壓縮編譯后的體積
-s: 去掉符號表
-w: 去掉調(diào)試信息,不能gdb調(diào)試了
-buildmode: 指定構(gòu)建模式,例如 -buildmode=shared 用于構(gòu)建共享庫。
-tags: 指定要使用的構(gòu)建標簽。
例如設(shè)置為"debug"表示只編譯帶有 debug 標簽的代碼。
以上命令是 Go 語言開發(fā)中非常基礎(chǔ)且重要的工具,
它們幫助開發(fā)者進行代碼的構(gòu)建、測試和運行,以及管理依賴項等任務(wù)。
有遺漏可以在評論區(qū)補充!
123 在
Clash for Windows作者刪庫跑路了,github已404中評論 按理說只要你在國內(nèi),所有的流量進出都在監(jiān)控范圍內(nèi),不管你怎么隱藏也沒用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最簡單的方法中評論 好久好久都沒看友情鏈接申請了,今天剛看,已經(jīng)添加。..博主 在
佛跳墻vpn軟件不會用?上不了網(wǎng)?佛跳墻vpn常見問題以及解決辦法中評論 @1111老鐵這個不行了,可以看看近期評論的其他文章..1111 在
佛跳墻vpn軟件不會用?上不了網(wǎng)?佛跳墻vpn常見問題以及解決辦法中評論 網(wǎng)站不能打開,博主百忙中能否發(fā)個APP下載鏈接,佛跳墻或極光..路人 在
php中使用hyperf框架調(diào)用訊飛星火大模型實現(xiàn)國內(nèi)版chatgpt功能示例中評論 教程很詳細,如果加個前端chatgpt對話頁面就完美了..
Copyright·? 2019 侯體宗版權(quán)所有·
粵ICP備20027696號