在一个平台上生成另一个平台可执行的文件,就叫做交叉编译。
一个cpu体系可以有不同的操作系统,一个操作系统也可以使用不同的架构平台。
1.查看go版本:
go version //go version go1.17.3 windows/amd64
2.交叉编译非常方便:
需要在cmd上设置环境变量:
set GOARCH=amd64 set GOOS=linux go build 或 SET CGO_ENABLED=0 // 禁用CGO SET GOOS=linux // 目标平台是linux SET GOARCH=amd64 // 目标处理器架构是amd64 go build
Windows下编译Linux平台 可执行程序:
SET CGO_ENABLED=0 // 禁用CGO SET GOOS=linux // 目标平台是linux SET GOARCH=amd64 // 目标处理器架构是amd64使用了cgo的代码是不支持跨平台编译的 然后再执行go build命令,得到的就是能够在Linux平台运行的可执行文件了。 Mac 下编译 Linux 和 Windows平台 64位 可执行程序:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go buildLinux 下编译 Mac 和 Windows 平台64位 可执行程序:
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go buildWindows下编译Mac平台64位 可执行程序:
SET CGO_ENABLED=0 SET GOOS=darwin SET GOARCH=amd64 go build



