Win下Go 交叉编译记录

文章目录

开发环境是Win,运行环境是CentOS或MAC; 则需要在Win下编译可以在CentOS或MAC上运行的Binary文件;下面是处理办法:

1. 先进入Go的源代码目录中

cd到go环境的安装目录下的src目录;然后依次执行以下命令(执行前先安装tdm64-gcc-4.8.1-3):

set GOOS=linux set GOARCH=386 set CGO_ENABLED=0 make.bat

如果要生成64位linux下的运行程序则依次输入下列命令:

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

如果要生成arm6下的运行程序则依次输入下列命令:

set GOOS=linux set GOARCH=arm set GOARM=6 set CGO_ENABLED=0 make.bat

例如:我将go环境安装在D:\Go下,并且我要生成32位linux下的运行程序;则我需要在cmd命令行下输入:

>cd d:/go/sr

d:\Go\src > set GOOS=linux 

                > set GOARCH=386 

                > set CGO_ENABLED=0 

                > make.bat

2. 配置好编译环境

执行完第一步后,就可以在IDE中对GO程序进行交叉编译了;在IDE中将编译的环境变量设置为cross-linux32(根据需要选择),然后点击查看》编辑环境变量,根据go的安装配置好设置信息,保存!

3. 编译

切换到程序的入口页面(即main方法页面),点击build则会在项目根目录生成相应的执行文件,执行文件名称为根目录的文件名。将生成的执行文件和程序一些其他的文件(主要是一些和程序相关的静态文件)上传到linux服务器,这里因为我们使用的是beego框架,所以除了上传执行文件外还需要将views,static,conf等3个文件夹上传到服务器。

4. 测试编译文件

进入linux系统下刚刚上传文件的目录,使用权限命令”chmod 777 程序名称” ;然后使用使程序在后台运行的命令”nohup ./程序名 &”如果要关闭程序,可以使用命令”ps” 查看后台程序的pid,然后使用“kill 程序pid”命令,关闭程序比如程序名为test,可以用如下命令查询

ps aux|grep test


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

各平台的GOOS和GOARCH参考 

OS                   ARCH                          OS version

linux                386 / amd64 / arm             >= Linux 2.6

darwin               386 / amd64                   OS X (Snow Leopard + Lion)

freebsd              386 / amd64                   >= FreeBSD 7

windows              386 / amd64                   >= Windows 2000


问题:

liteIDE的报错: Go: cannot find GOROOT directory: c:\go

其他平台下编译参考:

http://www.qetee.com/exp/golang/golang_compile_mac_linux_windows/

http://www.cnblogs.com/ghj1976/archive/2013/04/19/3030703.html

原文链接:,发表于 源代码(CodeBeta),转发请注明来源!

发表评论