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_buildgo 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 ...