1. 首页
  2. 文章

go交叉编译

fearless11 ·

指定叉编译目标:
GOARCH 目标平台(编译后的目标平台)的处理器架构(386、amd64、arm)
GOOS 目标平台(编译后的目标平台)的操作系统(darwin、freebsd、linux、windows)

(一)Windows 下编译Linux 64位可执行程序:

 SET CGO_ENABLED=0 //不设置也可以,原因不明
 SET GOOS=linux
 SET GOARCH=amd64
 通过 go env 查看设置是否成功。

(二)Linux 下编译Windows可执行程序:

 export CGO_ENABLED=0
 export GOOS=windows
 export GOARCH=amd64
 通过 go env 查看设置是否成功。
 go build hello.go

参考: http://blog.csdn.net/panshiqu/article/details/53788067

问题:
上面的(一)的方法设置只能在当前窗口生效,于是乎搜索出其他方法,不过没成功。

SET CGO_ENABLED=0 
SET GOOS=linux
SET GOARCH=amd64
make.bat

报错:
这里写图片描述
解决:
设置环境变量 GOROOT_BOOTSTRAP为GO的安装目录 C:\Go

再次运行make.bat报错:
这里写图片描述
github上有解释说:不是源码编译安装的go,重新源码安装go可以解决

问题:
$ go get github.com/gorilla/websocket
报错:
如make.bat所示
解决:
重新安装go,https://storage.googleapis.com/golang/go1.8.3.windows-amd64.zip

本文来自:CSDN博客

感谢作者:fearless11

查看原文:go交叉编译

Mark [bike](https://www.xjd.com/)
#2
更多评论
SET CGO_ENABLED=0 //不设置也可以,原因不明 这是说明:"其中CGO_ENABLED=0的意思是使用C语言版本的GO编译器,参数配置为0的时候就关闭C语言版本的编译器了。自从golang1.5以后go就使用go语言编译器进行编译了。在golang1.9当中没有使用CGO_ENABLED参数发现依然可以正常编译。"
#1

用户登录

没有账号?注册

今日阅读排行

    加载中

一周阅读排行

    加载中