2021-10-28
平台和跨平台
- 平台==操作系统 + 计算机硬件
交叉编译(跨平台编译)
- 平台: windows/mac/linux三大平台
- 简单说就是在windows上编译成可以在mac/linux上直接运行的可执行文件,反之亦然。
- 默认执行go build编译的可执行文件都是当前操作系统上课运行的文件。
- 如果需要编译出在其他平台上运行的可执行文件,需要指定目标操作系统的平台和处理器架构
Windows下编译Mac平台64位可执行程序:
SET CGO_ENABLED=0 // 禁用cGO,使用了cgo的代码是不支持跨平台编译的
SET GOOS=darwin //目标平台是mac
SET GOARCH=amd64 //目标处理器架构是amd64
go build main.go
Windows下编译Linux平台64位可执行程序:
# Linux
SET CGO_ENABLED=0
SET GOOS=linux
SET GOARCH=amd64
go build main.go
Mac下编译Linux, Windows
# Linux
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go
# Windows
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go
如: CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -o helloworld-windows helloworld.go
Linux下编译Mac, Windows
# Mac
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build main.go
# Windows
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go