在mac平台编译的可执行文件放到linux下执行会报错cannot execute binary file,在不同平台环境贬义的可执行文件是不能垮环境执行的,只有开启交叉编译才可以,那如何开启呢
开启交叉编译和3个参数有关
CGO_ENABLED这个参数默认为1,开启CGO。 需要指定为0来关闭,因为CGO不支持交叉编译。 GOOS 设置系统类型,可选值: linux ,windows ,darwin ,freebsd GOARCH 设置底层架构,常用选值: arm64,amd64
#打包linux CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o abc-demo-linux main.go #打包mac苹果电脑 CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -o abc-demo-mac main.go #打包windows CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -o abc-demo-windows.exe main.go #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


本文作者:千寻
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!