Golang: 如何交叉编译
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 可执行文件
# Linux 通用 64 位系统(Centos、Ubuntu等)
SET CGO_ENABLED=0 SET GOOS=linux SET GOARCH=amd64 go build
转自:http://roc.havemail.cn/archives/1489.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
2009-08-14 Essential.C#--第三章 操作符和控制流