golang交叉編譯

2021-09-10 06:17:29 字數 1246 閱讀 5966

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