一、何为交叉编译
简单地说,就是在一个平台上生成另一个平台上的可执行代码。同一个体系结构可以运行不同的操作系统;同样,同一个操作系统也可以在不同的体系结构上运行
二、交叉编译的准备
安装 TDM-GCC
下载地址: http://tdm-gcc.tdragon.net/download
安装完成后添加 TDM-GCC 中 bin 文件夹进环境变量
三、简述交叉编译
参数解析
这里用到了两个变量:
- GOOS:目标操作系统
- GOARCH:目标操作系统的架构
OS | ARCH | OS Version |
---|---|---|
linux | 386/amd64/arm | >= Linux 2.6 |
darwin | 386/amd64 | OS x |
freebsd | 386/amd64 | >= FreeBSD 7 |
windows | 386/amd64 | >= Windows2000 |
四、Golang 多平台交叉编译实记
Mac 下编译 Linux 和 Windows 64位可执行程序
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go
Linux 下编译 Mac 和 Windows 64 位可执行程序
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build main.go
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go
Windows 下编译 Mac 和 Linux 64位可执行程序
SET CGO_ENABLED=0
SET GOOS=darwin
SET GOARCH=amd64
go build main.go
SET CGO_ENABLED=0
SET GOOS=linux
SET GOARCH=amd64
go build main.go
GOOS:目标平台的操作系统(darwin、freebsd、linux、windows)
GOARCH:目标平台的体系架构(386、amd64、arm)
交叉编译不支持 CGO 所以要禁用它
评论区