开发环境是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
cd:\Go\src > set GOOS=linux
> set GOARCH=386
> set =0
CGO_ENABLED> 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