0. golang 可以交叉编译出不同操作系统运行的程序
1. 在mac m2 架构下,golang程序 mian文件所在的主目录下,即可生成
# 在命令行进入项目根目录,并执行以下命令 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 等
2.常用的 GOOS
与 GOARCH
(【注】更多系统环境请移步官网:https://golang.org/doc/install/source#environment):
$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) |
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 可执行文件
标签:交叉,Windows,GOOS,Golang,编译,GOARCH,Linux,go,64 From: https://www.cnblogs.com/yaoshi641/p/17628178.html# Linux 通用 64 位系统(Centos、Ubuntu等) SET CGO_ENABLED=0 SET GOOS=linux SET GOARCH=amd64 go build
转自:http://roc.havemail.cn/archives/1489.html