小标
2018-12-07
来源 :
阅读 1460
评论 0
摘要:本文主要向大家介绍了Linux运维知识之go在Linux上编译Windows执行文件,通过具体的内容向大家展现,希望对大家学习Linux运维知识有所帮助。
本文主要向大家介绍了Linux运维知识之go在Linux上编译Windows执行文件,通过具体的内容向大家展现,希望对大家学习Linux运维知识有所帮助。
(1)首先进入go/src 源码所在目录,执行如下命令创建目标平台所需的包和工具文件。
$ cd /usr/local/go/src$ CGO_ENABLED=0 GOOS=linux GOARCH=amd64 ./make.bash
如果是 Windows 则修改 GOOS 即可。$ CGO_ENABLED=0 GOOS=windows GOARCH=amd64 ./make.bash----------------------------------------------------------------------------此处可能报错:##### Building Go bootstrap tool.cmd/distERROR: $GOROOT_BOOTSTRAP must not be set to $GOROOTSet $GOROOT_BOOTSTRAP to a working Go tree >= Go 1.4.
解决方法:将当前的go复制一份#cp -rf go go1.4----------------------------------------------------------------------------
(2) 现在可以编译 Linux 和 Windows 平台所需的执行文件了。
$ CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build$ CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build
不过该方式暂时不支持 CGO。
//solovyov.net/en/2012/03/09/cross-compiling-go/
以上假定是64位架构,32位,修改GOARCH为386
说明:这里并不是重新编译Go,因为安装Go的时候,只是编译了本地系统需要的东西;而需要跨平台交叉编译,需要在Go中增加对其他平台的支持。所以,有 ./make.bash 这么一个过程
交叉编译问题补充:
首先,建议安装Go语言通过源码安装,否则可能没有make.bash或make.bat程序。
之所以需要执行上面的这些步骤,是因为安装Go语言时,一些工具和平台相关的代码并没有生成,执行上面的步骤,并不是重新安装Go语言,而是生成交叉编译(目标平台)需要的工具和文件。这些只是在第一次交叉编译的时候做。之后就不需要了。
为了更快的编译,可以
./make.bash --no-clean
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注系统运维Linux频道!
喜欢 | 0
不喜欢 | 0
您输入的评论内容中包含违禁敏感词
我知道了

请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号