Golang 跨平台編譯

2021-07-25 19:21:33 字數 885 閱讀 9194

***

(1)首先進入go/src 原始碼所在目錄,執行如下命令建立目標平台所需的包和工具檔案。cd

/usr

/loc

al/g

o/sr

c cgo_enabled=0 goos=linux goarch=amd64 ./make.bash

如果是 windows 則修改 goos 即可。

$ cgo_enabled=0 goos=windows goarch=amd64 ./make.bash

(2) 現在可以編譯 linux 和 windows 平台所需的執行檔案了。 cg

oena

bled

=0go

os=l

inux

goar

ch=a

md64g

obui

ldcgo_enabled=0 goos=windows goarch=amd64 go build

不過該方式暫時不支援 cgo。

以上假定是64位架構,32位,修改goarch為386

說明:

這裡並不是重新編譯go,因為安裝go的時候,只是編譯了本地系統需要的東西;而需要跨平台交叉編譯,需要在go中增加對其他平台的支援。所以,有 ./make.bash 這麼乙個過程

交叉編譯問題補充:

首先,建議安裝go語言通過原始碼安裝,否則可能沒有make.bash或make.bat程式。

之所以需要執行上面的這些步驟,是因為安裝go語言時,一些工具和平台相關的**並沒有生成,執行上面的步驟,並不是重新安裝go語言,而是生成交叉編譯(目標平台)需要的工具和檔案。這些只是在第一次交叉編譯的時候做。之後就不需要了。

為了更快的編譯,可以

./make.bash –no-clean

golang跨平台編譯

golang中跨平台交叉編譯涉及兩個重要的環境變數 goos和goarch,分別代表target host os和target host arch,如果沒有顯式設定這些環境變數,我們通過go env可以看到go編譯器眼中這兩個環境變數的當前值 go env goarch amd64 gobin ho...

golang 跨平台編譯

本文交叉編譯需要 1.5 以上 cgo enabled 0 goos windows goarch amd64 go build o test win x64.exe test.go cgo enabled 0 goos linux goarch amd64 go build o test linu...

Golang 跨平台編譯

例如 在 windows 環境編譯 linux 可以執行檔案或者在 linux 環境編譯 windows 可執行檔案 windows 環境編譯 linux 設定引數 export cgo enabled 0 export goos linux export goarch amd64 我是在 wind...