golang 跨平台編譯

2021-08-02 18:31:50 字數 2640 閱讀 2835

本文交叉編譯需要 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_linux_x64 test.go

設定環境變數goroot_bootstrap

解壓到

tar zxvf [go1.4.2.darwin-amd64-osx10.8.tar.gz]()

cp go/ $home/go-bootstrap/

goroot_bootstrap=$home/go-bootstrap/

export goroot_bootstrap

解壓後設定環境變數goroot_bootstrap到解壓目錄(禁止任何中文,編碼問題)

進入需要配置交叉編譯的目錄,執行

cd

%goroot%/src

set cgo_enabled=0 | set goos=linux | set goarch=amd64 | make.bat

# 如果你想在windows 32位系統下執行

➜ ~cd $goroot/src

➜ ~cgo_enabled=0

goos=windows

goarch=386 ./make.bash

# 如果你想在windows 64位系統下執行

➜ ~cd $goroot/src

➜ ~cgo_enabled=0

goos=windows

goarch=amd64 ./make.

# 如果你想在os x 32位系統下執行

➜ ~cd $goroot/src

➜ ~cgo_enabled=0

goos=darwin

goarch=386 ./make.bash

# 如果你想在os x 64位系統下執行

➜ ~cd $goroot/src

➜ ~cgo_enabled=0

goos=darwin

goarch=amd64 ./make.bash

# 如果你想在linux 32位系統下執行

➜ ~cd $goroot/src

➜ ~cgo_enabled=0

goos=linux

goarch=386 ./make.bash

# 如果你想在linux 64位系統下執行

➜ ~cd $goroot/src

➜ ~cgo_enabled=0

goos=linux

goarch=amd64 ./make.bash

執行結束後,才可以使用交叉編譯

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

##### building go bootstrap tool.

cmd/dist

error: cannot find /users/***/go1.4/bin/go.

set $goroot_bootstrap to a working go tree >= go 1.4.

# 如果你想在windows 32位系統下執行

➜ ~cgo_enabled=0

goos=windows

goarch=386 go build test.go

# 如果你想在windows 64位系統下執行

➜ ~cgo_enabled=0

goos=windows

goarch=amd64 go build test.go

# 如果你想在os x 32位系統下執行

➜ ~cgo_enabled=0

goos=darwin

goarch=386 go build test.go

# 如果你想在os x 64位系統下執行

➜ ~cgo_enabled=0

goos=darwin

goarch=amd64 go build test.go

# 如果你想在linux 32位系統下執行

➜ ~cgo_enabled=0

goos=linux

goarch=386 go build test.go

# 如果你想在linux 64位系統下執行

➜ ~cgo_enabled=0

goos=linux

goarch=amd64 go build test.go

goos=windows go build -v

goos=linux go build -v

goos=darwin go build -v

golang跨平台編譯

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

Golang 跨平台編譯

1 首先進入go src 原始碼所在目錄,執行如下命令建立目標平台所需的包和工具檔案。cd usr loc al g o sr c cgo enabled 0 goos linux goarch amd64 make.bash 如果是 windows 則修改 goos 即可。cgo enabled ...

Golang 跨平台編譯

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