golang交叉編譯
golang 支援交叉編譯,在乙個平台上生成另乙個平台的可執行程式
mac 下編譯 linux 和 windows 64位可執行程式
cgo_enabled=0 goos=linux goarch=amd64 go build main.go
cgo_enabled=0 goos=windows goarch=amd64 go build main.go
linux 下編譯 mac 和 windows 64位可執行程式
cgo_enabled=0 goos=darwin goarch=amd64 go build main.go
cgo_enabled=0 goos=windows goarch=amd64 go build main.go
windows 下編譯 mac 和 linux 64位可執行程式
set cgo_enabled=0
set goos=darwin
set goarch=amd64
go build main.go
set cgo_enabled=0
set goos=linux
set goarch=amd64
go build main.go
goos:目標平台的作業系統(darwin、freebsd、linux、windows)
goarch:目標平台的體系架構(386、amd64、arm)
交叉編譯不支援 cgo 所以要禁用它
go build -o ofcordertools main.go 自定義生成的可執行檔案的名字
go build -v main.go 列印編譯詳情
go build命令的常用標記說明
| 標記名稱 | 標記描述 |
| -o | 指定輸出檔案。 |
| -a | 強行對所有涉及到的**包(包括標準庫中的**包)進行重新構建,即使它們已經是最新的了。 |
| -n | 列印構建期間所用到的其它命令,但是並不真正執行它們。 |
| -p n | 構建的並行數量(n)。預設情況下並行數量與cpu數量相同。 |
| -race | 開啟資料競爭檢測。此標記目前僅在linux/amd64、darwin/amd64和windows/amd64平台下被支援。 |
| -v | 列印出被構建的**包的名字。 |
| -work | 列印出臨時工作目錄的名字,並且取消在構建完成後對它的刪除操作。 |
| -x | 列印出構建期間所用到的其它命令。
golang交叉編譯
go env檢查各項環境變數無誤 進入shell環境 windows為cmd環境 切換到專案工程的原始碼目錄 包含main包的那個目錄 設定好環境變數,關閉cgo 交叉編譯不支援所以要關閉 將編譯目標平台的環境變數設定好,然後執行go build命令即可,具體方法如下 cgo enabled 0 g...
golang交叉編譯
golang是乙個跨平台的語言,如何進行跨平台編譯呢,實際上只需要制定以下兩個 引數即可 goos 可執行檔案將要執行的作業系統。支援 darwin,freebsd,linux,windows.goarch 作業系統架構。支援 386,amd64,arm.編譯mac cgo enabled 0,go...
golang交叉編譯CGO
記錄在macos上編譯windows和linux的go程式,帶cgo呼叫c 比如go sqlite3包,已測試通過。1.windows平台 mingw w64 安裝編譯器 brew install mingw w64 編譯指令 cgo enabled 1 goos windows goarch am...