GO跨平台编译
2023-11-07 本文已影响0人
腿长袖子短
1. 跨平台编译
默认go build
的可执行文件都是在当前操作系统的可执行文件
如果需求变更为 在windows
下编译一个linux
系统的可执行文件
2. 指定目标操作系统平台
-
禁用CGO
SET CGO_ENABLED=0
(需要恢复时,值为1) -
目标平台为
linux
SET GOOS=linux
(需要恢复时,值为windows) -
目标处理器架构是
amd64
SET GOARCH=amd64
(如果没变,就不用)
使用了CGO
的代码是不支持跨平台编译的
3. MAC
下编译Linux
和Windows
平台64位可执行程序
-
Linux
平台CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build
-
windows
平台CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build
4. Linux
下编译Mac
和windows
平台64位可执行程序
-
mac
平台CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build
-
windows
平台CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build
5. Windows
下编译Mac
平台64位可执行程序
SET CGO_ENABLED=0
SET GOOS=darwin
SET GOARCH=amd64
go build
6. Windows
下编译Linux
平台64位可执行程序
如果你的Windows
使用的是cmd
,那么按如下方式指定环境变量。
SET CGO_ENABLED=0
SET GOOS=linux
SET GOARCH=amd64
go build
如果你的Windows
使用的是PowerShell
终端,那么设置环境变量的语法为
$ENV:CGO_ENABLED=0
$ENV:GOOS="linux"
$ENV:GOARCH="amd64"
恢复
$ENV:CGO_ENABLED=1
$ENV:GOOS="windows"
$ENV:GOARCH="amd64"