osx 交叉编译 linux,交叉编译在OSX上运行?

感谢golang-nuts的善良和耐心帮助,配方如下:

1)需要针对不同的目标平台和体系结构编译Go编译器。这是通过go安装中的src文件夹完成的。在我的情况下,Go安装位于其中,/usr/local/go因此您需要发布make实用程序才能编译编译器。在执行此操作之前,您需要了解一些警告。

交叉编译时有关CGO库的问题,因此需要禁用CGO库。

通过将位置更改为源目录来完成编译,因为必须在该文件夹中完成编译

cd/usr/local/go/src

然后编译Go编译器:

sudo GOOS=windows GOARCH=386CGO_ENABLED=0./make.bash--no-clean

您需要通过更改GOOS和GOARCH参数,为希望交叉编译的每个OS和体系结构重复此步骤。

如果您像我一样在用户模式下工作,则需要sudo,因为Go编译器位于系统目录中。否则,您需要以超级用户身份登录。在Mac上,您可能需要启用/配置SU访问(默认情况下不可用),但是如果您已成功安装Go,则可能已经具有root访问权限。

2)构建完所有交叉编译器后,可以使用以下设置来愉快地交叉编译应用程序:

GOOS=windows GOARCH=386go build-o appname.exe appname.go

GOOS=linux GOARCH=386CGO_ENABLED=0go build-o appname.linux appname.go

将GOOS和GOARCH更改为要构建的目标。

如果您遇到CGO问题,请在命令行中包含CGO_ENABLED = 0。另请注意,用于Linux和Mac的二​​进制文件没有扩展名,因此,为了拥有不同的文件,您可以添加扩展名。-o switch指示Go使输出文件类似于c / c ++的旧编译器,因此上面使用的appname.linux可以是任何其他扩展名。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值