golang交叉編譯CGO

2021-09-28 15:21:11 字數 586 閱讀 2899

記錄在macos上編譯windows和linux的go程式,帶cgo呼叫c**,比如go-sqlite3包,已測試通過。

1. windows平台(mingw-w64)

> 安裝編譯器:brew install mingw-w64

> 編譯指令:cgo_enabled=1 goos=windows goarch=amd64 cc=x86_64-w64-mingw32-gcc go build -v

2. linux平台(x86_64-linux-musl-gcc)

> 安裝編譯器:brew install filosottile/musl-cross/musl-cross

>編譯指令:cgo_enabled=1 goos=linux goarch=amd64 cc=x86_64-linux-musl-gcc cgo_ldflags="-static" go build -a -v

注:-a:重新編譯

-static表示靜態連線,沒有這個選項,linux上執行報:-bash: ./***: /lib/ld-musl-x86_64.so.1: bad elf interpreter: no such file or directory

golang交叉編譯

golang交叉編譯 golang 支援交叉編譯,在乙個平台上生成另乙個平台的可執行程式 mac 下編譯 linux 和 windows 64位可執行程式 cgo enabled 0 goos linux goarch amd64 go build main.go cgo enabled 0 goo...

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