• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

go在Linux上编译Windows执行文件

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

参考:http://studygolang.com/topics/21

(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/dist
ERROR: $GOROOT_BOOTSTRAP must not be set to $GOROOT
Set $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。

http://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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Go|Go语言打包静态文件以及如何与Gin一起使用Go-bindata发布时间:2022-07-10
下一篇:
fabric-sdk-goclient开发发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap