Golang windows下 交叉编译
前言
在进行Go开发的时候,go env
可以设置Go的环境变量信息
GOOS 的默认值是我们当前的操作系统, 如果 windows,linux,注意 mac os 操作的上的值是darwin。
GOARCH 则表示 CPU 架构,如 386,amd64,arm 等。
CMD命令行中
在CMD命令行中编译(示例编译64位linux程序)
// 设置Linux编译环境
// 第一种
SET CGO_ENABLED=0
set GOARCH=amd64
set GOOS=linux
// 第二种
go env -w CGO_ENABLED=0 GOOS=linux
// 开始编译
go build -o ./build/ ./main.go
在windows10之前的系统版本上使用cmd命令行可以使用上述命令编译
在powershell命令行中
在powershell命令行中编译(示例编译64位linux程序)
// 设置Linux编译环境
$env:CGO_ENABLED="0"
$env:GOOS="linux"
$env:GOARCH="amd64"
// 开始编译
go build ./build/ ./main.go
在powershell上,环境变量的设置方式与cmd命令行做出了修改,所以导致目前大部分博客中写的golang的交叉编译命令失效,所以使用windows10 + powershell的用户将设置环境变量的方式修改成上文对应的即可
PS:环境变量参数参考:
GOARCH: amd64, 386, arm, ppc64, …
GOOS: linux, darwin, windows, netbsd, …
环境常用切换
linux 64
SET CGO_ENABLED=0
SET GOOS=linux
SET GOARCH=amd64
windows
SET CGO_ENABLED=1
SET GOOS=windows
SET GOARCH=amd64