Golang在windows下交叉编译linux程序
1、下载相关程序。
Golang下载:http://www.golangtc.com/download
Git下载:http://git-scm.com/download/
TDM-GCC下载:http://tdm-gcc.tdragon.net/download
2、Go编译环境配置
安装 TDM-GCC,程序会自动设置PATH环境变量,如果没有设置成功请手动设置。
安装Go,安装完后需要设置GOROOT,GOPATH,GOBIN,PATH环境变量,
其中
GOROOT为你的Go安装跟目录
GOPATH为你go程序开发目录,go get后的包也会下载到该目录。
GOBIN为你的go运行目录,运行 go install 命令后,程序会被安装到该目录。
PATH为你Go程序根目录,用于能够通过控制台调用go命令。
3、配置交叉编译环境
在Go根目录下的src目录,新建一个build.bat文件,并复制内容如下:
set CGO_ENABLED=
set GOROOT_BOOTSTRAP=C:/Go
::x86块
set GOARCH=
set GOOS=windows
call make.bat --no-clean set GOOS=linux
call make.bat --no-clean set GOOS=freebsd
call make.bat --no-clean set GOOS=darwin
call make.bat --no-clean
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::x64块
set GOARCH=amd64
set GOOS=linux
call make.bat --no-clean
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::arm块
set GOARCH=arm
set GOOS=linux
call make.bat --no-clean
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: set GOARCH=
set GOOS=windows
go get github.com/nsf/gocode
pause
我的Go程序版本是1.6,需要设置GOROOT_BOOTSTRAP变量为Go的安装目录,否则执行时会报错。
然后运行build.bat,等待结束。
该程序会编译其他平台编译Go需要的库和编译文件。
完成后,在cmd命令行下依次执行:
set GOOS=linux
set GOPACH=amd64
go build -o -x APPNAME main.go
编译后的文件会出现在main.go相应的目录下。
Golang在windows下交叉编译linux程序的更多相关文章
- gcc和MinGW的异同(在cygwin/gcc做的东西可以无缝的用在linux下,没有任何问题,是在windows下开发linux程序的一个很好的选择)
		
cygwin/gcc和MinGW都是gcc在windows下的编译环境,但是它们有什么区别,在实际工作中如何选择这两种编译器. cygwin/gcc完全可以和在linux下的gcc化做等号,这个可以从 ...
 - # 如何在Windows下运行Linux程序
		
如何在Windows下运行Linux程序 一.搭建 Linux 环境 1.1 安装 VMware Workstation https://www.aliyundrive.com/s/TvuMyFdTs ...
 - 利用Winscp,Putty实现Windows下编写Linux程序
		
本文讲的方案实现以下功能:利用winscp和putty的脚本功能,实现在Window平台上编写代码,上传到Linux进行编译,然后取编译结果.需要用到3个文件,分别如下: (1) synchroniz ...
 - golang 在 windows 下编译出 linux 二进制可执行文件的软件套装合集 [go 1.7.3环境]
		
golang 很好用,不过要把工具链弄完整. 要不你会发现怎么不能编译跨平台的呀? 怎么写代码没提示啊? ... 这一整套弄下来并不容易. 所以精心准备了一套工具方便大家使用. 软件列表如图. 安装顺 ...
 - 闲来瞎扯 -- 在vs2008下编写linux程序
		
虽说vim很强大,但是个人感觉器代码提示功能不如visual assist来的强大.如何使用visual assist来实现代码的提示功能呢? 首先说明我的环境 : 宿主机是xp(O(∩_∩)O~还是 ...
 - Go交叉编译(Go语言Mac/Linux/Windows下交叉编译)
		
Go交叉编译(Go语言Mac/Linux/Windows下交叉编译) 2019/11/21 Chenxin 在很多时候,由于开发的方便,会有这样的场景出现,使用Mac开发或使用Windows开发,需要 ...
 - Ubuntu上安装和使用SSH,Xming+PuTTY在Windows下远程Linux主机使用图形界面的程序
		
自:http://blog.csdn.net/neofung/article/details/6574002 Ubuntu上安装和使用SSH 网上有很多介绍在Ubuntu下开启SSH服务的文章,但大 ...
 - 在windows下使用linux命令,GnuWin32的使用.
		
http://sourceforge.net/projects/getgnuwin32 使用过linxu的伙计估计都会喜欢上linux各种各样强大的命令如:grep, sed,awk,diff和pat ...
 - 使用Code::blocks在windows下写网络程序
		
使用Code::blocks在windows下写网络程序 作者 He YiJun – storysnail<at>gmail.com 团队 ls 版权 转载请保留本声明! 本文档包含的原创 ...
 
随机推荐
- Bouncycastle中的RSA技术以及解决之道
			
一个使用bouncycastle进行安全操作的实用类 2007-04-13 12:54 import java.io.*;import java.security.*;import java.secu ...
 - linux 解压,源码包
			
从网络上下载到的源码包, 最常见的是 .tar.gz 包, 还有一部分是 .tar.bz2包 要解压很简单 : .tar.gz 格式解压为 tar -zxvf ...
 - Python 处理多层嵌套列表
			
>>> movies =[ "the holy grail", 1975,"terry jones",91, ["graham ch ...
 - 【linux】之安装mysql常用配置
			
下载mysql地址 http://dev.mysql.com/downloads/mysql/ 选择下面这个 查看是否存在mysql安装包 rpm -qa|grep -i mysql 删除mysql安 ...
 - linux下mongodb定时备份指定的集合
			
目标:把一台linux机上mongodb的数据定时备份到另一台机上: 过程: 一开始打算使用mongoexport和mongoimport,但是总是会报“\x00”字符串不能识别的问题,后来就改成了m ...
 - Servlet概述及其生命周期
			
Servlet和传统CGI程序相比的优点: 1. 只需要启动一个操作系统进程以及加载一个JVM,大大降低了系统的开销 2. 如果多个请求需要做同样处理的时候,这时只需要加载一个类,这也大大降低了开 ...
 - PLSQL_基础系列04_时间间隔INTERVAL(案例)
			
2014-12-08 Created By BaoXinjian
 - DBA_Oracle Startup / Shutdown启动和关闭过程详解(概念)
			
2014-08-07 Created By BaoXinjian
 - 用socket操作redis
			
代码: $cmd = "*3\r\n$3\r\nSET\r\n$3\r\nfoo\r\n$3\r\nbar\r\n"; // set foo bar $socket = socke ...
 - SqlServr进程内存使用增长的解决办法
			
SqlServr进程使用的内存缓慢增长是正常的现象,但在服务器长时间不重启或sql服务不重启的情况下,最终,这个进程会耗尽所有的内存,导致所有终端无法正常与数据库交互. 1.设置数据库最大使用内存的值 ...