go交叉編譯

2021-08-02 04:49:25 字數 1080 閱讀 5810

指定叉編譯目標:

goarch 目標平台(編譯後的目標平台)的處理器架構(386、amd64、arm)

goos 目標平台(編譯後的目標平台)的作業系統(darwin、freebsd、linux、windows)

(一)windows 下編譯linux 64位可執行程式:

set cgo_enabled=0

//不設定也可以,原因不明

set goos=linux

set goarch=amd64

通過 go env 檢視設定是否成功。

(二)linux 下編譯windows可執行程式:

export cgo_enabled=0

export goos=windows

export goarch=amd64

通過 go env 檢視設定是否成功。

go build hello.go

參考:

問題:

上面的(一)的方法設定只能在當前視窗生效,於是乎搜尋出其他方法,不過沒成功。

set cgo_enabled=0 

set goos=linux

set goarch=amd64

make.bat

報錯:

解決:

設定環境變數 goroot_bootstrap為go的安裝目錄 c:\go

再次執行make.bat報錯:

github上有解釋說:不是原始碼編譯安裝的go,重新原始碼安裝go可以解決

問題:

報錯:

如make.bat所示

解決:

重新安裝go,

Go交叉編譯

使用go語言做了乙個微服務,微服務中的乙個功能,需要呼叫底層so。該微服務執行於arm64架構,系統為aarch64 gnu linux。因此需要交叉編譯。第一步 編寫編譯指令碼,指令碼中需要設定環境變數 go build v 第二步 調整gcc編譯環境。如下圖中5項,預設用於編譯和鏈結的工具。位於...

Go交叉編譯

golang的交叉編譯要保證golang版本在1.5以上,本解決方案例項 1.9版本執行的。goos linux goarch amd64 go build hello.go這裡用到了兩個變數 goos 目標作業系統 goarch 目標作業系統的架構 osarch os version linux ...

go交叉編譯

golang 支援在乙個平台下生成另乙個平台可執行程式的交叉編譯功能。cgo enabled 0 goos linux goarch amd64 go build test.go cgo enabled 0 goos windows goarch amd64 go build test.go cgo...