Go 編譯 工具

2022-08-18 00:03:11 字數 1993 閱讀 7194

go 的工具鏈非常豐富,從獲取原始碼、編譯、文件、測試、效能分析,到原始碼格式化、原始碼提示、重構工具等應有盡有

go 的編譯速度非常快(併發編譯),並且以 gopath 作為工作目錄和一套完整的工程目錄結構規則(gopath 需要提前配置好)

使用 go build 命令將原始碼編譯為可執行檔案,有很多種編譯方法,如無引數編譯、檔案列表編譯、指定包編譯等,使用這些方法都可以輸出可執行檔案

準備**目錄結構

**目錄結構(位置是 ./src/part_9_compile)

demo:main.go 模組中 main() 函式呼叫了同包模組 lib.go 裡面的 pkgfunc() 函式

無引數編譯如果原始碼中沒有依賴 gopath 的包的引用,那麼這些原始碼可以使用無引數 go build 編譯:

go build + 檔案列表

go build + 包

包名的路徑是相對於 gopath 下的 src 目錄開始的

新增 -o 引數可以指定輸出可執行檔案的檔名,例如:

go build -o main part_9_compile/go_build
go build 編譯時的附加引數表中的附加引數按使用頻率排列,根據需要選擇進行使用

附加引數

備  注

-v編譯時顯示包名

-p n

開啟併發編譯,預設情況下該值為 cpu 邏輯核數

-a強制重新構建

-n列印編譯時會用到的所有命令,但不真正執行

-x列印編譯時會用到的所有命令

-race

開啟競態檢測

go install 的功能與 go build 類似,附加引數絕大多數都可以與 go build 通用,只是將編譯的中間檔案放在 gopath 下的 pkg 目錄下,以及固定地將編譯結果放在 gopath 下的 bin 目錄中

go install 是建立在 gopath 上的,無法在其它的目錄中使用 go install,生成的可執行檔案的名稱來自編譯時的包名,無法使用 -o 引數指定檔名

python 語言可以在不輸出二進位制的情況下,將**使用直譯器邊編譯邊執行,go 雖然不使用直譯器,但可以使用 go run 命令來達到同樣的效果

go run 命令會編譯原始碼,並且執行原始碼的 main() 函式,不會在當前目錄生成可執行檔案,工作目錄為當前目錄

在 go run 的後面可以新增引數,這部分命令列引數,可以被傳入到程式內部進行接收

package main

import (

"flag"

"fmt"

)func main()

呼叫:go run main.go --mode="production" --level=1

執行結果:

production 1

後續補充 ~

Go 編譯工具 liteide 設定

一 windows 設定 二 1 liteide 錯誤 程序無法啟動 2 x86 64 w64 mingw32 gcc 4.8.0 win64 rubenvb.7z go 需要安裝 mingw64?3 4 go中呼叫c cgo 中的坑 5 go語言開發工具liteide配置 windows 谷歌系統...

Go專案熱編譯工具gowatch

在golang專案編寫過程中,需要不斷的進行更改 除錯 開發 但是每一次更改完 之後,需要停止服務,再重新編譯執行,才能看到效果,每次手動進行都很麻煩,所以就找了乙個這樣的開源工具gowatch來實時監聽檔案的改動進行編譯。go get github.com silenceper gowatch安裝...

go交叉編譯

指定叉編譯目標 goarch 目標平台 編譯後的目標平台 的處理器架構 386 amd64 arm goos 目標平台 編譯後的目標平台 的作業系統 darwin freebsd linux windows 一 windows 下編譯linux 64位可執行程式 set cgo enabled 0 ...