环境:Go 1.16+
,Go 的交叉编译至少要 1.5+
以上。
测试系统: MacOS
,Centos7
, Win10
1. 编译方法
# 在命令行进入项目根目录,并执行以下命令
CGO_ENABLED=0 GOOS=xxx GOARCH=xxx go build
参数说明:
CGO_ENABLED
:是否使用C语言
版本的GO
编译器。0
表示不使用,1
表示使用,默认CGO_ENABLED
的值为1
,允许你在Go
代码中调用C
代码。自从golang 1.5
以后go
就使用go
语言编译器进行编译。如果系统中使用了C
的库,那么就设置为1
;没有使用的话就设置为0
即可。GOOS
:目标操作系统,比如 Mac、Linux、Windows 等GOARCH
:目标操作系统的架构,32 位、64 位、ARM 等
常用的 GOOS
与 GOARCH
:
$GOOS | $GOARCH | 描述 |
---|---|---|
darwin | amd64 | Mac 64 位系统 |
darwin | arm64 | Mac 64 位系统(ARM) |
linux | 386 | Linux 32 位系统 |
linux | amd64 | Linux 64 位系统 |
linux | arm | Linux 32 位系统(ARM) |
linux | arm64 | Linux 64 位系统(ARM) |
windows | 386 | Windows 32 位系统 |
windows | amd64 | Windows 64 位系统 |
windows | arm | Windows 32 位系统(ARM) |
windows | arm64 | Windows 64 位系统(ARM) |
【注】更多系统环境请移步官网:https://golang.org/doc/install/source#environment
2. Mac 编译
【注】默认在当前项目的根目录生成项目的二进制文件。
2.1 编译成 Linux 可执行文件
# Linux 通用 64 位系统(Centos、Ubuntu等)
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build
2.2 编译成 Windows 可执行文件
# Windows 64 位系统
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build
3. Linux 编译
【注】默认在当前项目的根目录生成项目的二进制文件。
3.1 编译成 Mac 可执行文件
# Mac 64 位系统
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build
3.2 编译成 Windows 可执行文件
# Windows 64 位系统
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build
4. Windows 编译
【注】默认在当前项目的根目录生成项目的二进制文件。
4.1 编译成 Mac 可执行文件
# Mac 64 位系统
SET CGO_ENABLED=0 SET GOOS=darwin SET GOARCH=amd64 go build
4.2 编译成 Linux 可执行文件
# Linux 通用 64 位系统(Centos、Ubuntu等)
SET CGO_ENABLED=0 SET GOOS=linux SET GOARCH=amd64 go build
参考文章: