【转】golang 交叉编译】的更多相关文章

apt-get install gcc-mingw-w64 env CGO_ENABLED= GOOS=windows GOARCH=amd64 CC=x86_64-w64-mingw32-gcc go build -o ./app/app.exe ./app/main.go env CGO_ENABLED= GOOS=windows GOARCH= CC=i686-w64-mingw32-gcc go build -o ./app/app.exe ./app/main.go Gox 是一个简单…
一.何为交叉编译 简单地说,就是在一个平台上生成另一个平台上的可执行代码.同一个体系结构可以运行不同的操作系统:同样,同一个操作系统也可以在不同的体系结构上运行. 二.交叉编译前的准备 本文只介绍Windows平台下的Golang交叉编译 安装TDM-GCC 下载地址:http://tdm-gcc.…
Golang 支持交叉编译,在一个windows平台可以生成linux或Mac系统下的可执行文件. Mac 下编译 Linux 和 Windows 64位可执行程序 CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go Linux 下编译 Mac 和 Windows 64位可执行程序 CGO_ENABLED=0 GOOS=dar…
问题 golang如何在一个平台编译另外一个平台可以执行的文件.比如在mac上编译Windows和linux可以执行的文件.那么我们的问题就设定成:如何在mac上编译64位linux的可执行文件. 解决方案 golang的交叉编译要保证golang版本在1.5以上,本解决方案实例代码1.9版本执行的. 我们想要编译的文件hello.go hello.go package main import "fmt" func main() { fmt.Printf("hello, wo…
windows平台之下使用 go env 能看到go本身的配置的环境变量,其中红框框起来的变量是交叉编译需要改动的选项, 由于是win平台开发,但是跑起来的程序都是在linux,所以linux转win的就不搞了,如果有需要请百度谷歌 SET GOOS=linux SET GOARCH=amd64 就下来就可以对go程序就行build编译为linux运行的软件了 go build 但是注意 在linux上需要权限才能运行  添加权限 chmod +x go编译文件 golang执行该软件即可运行,…
各平台的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 $ cd /usr/local/go/src $ sudo CGO_ENABLED=0 GOOS=linux GO…
gox - 一款简单的交叉编译工具 下载地址:https://github.com/mitchellh/gox 使用 go get 命令安装: go get github.com/mitchellh/gox 同 go build 一样, 用 gox 编译项目 〉 只生成linux平台amd64的文件: gox -osarch="linux/amd64" 只生成windows平台amd64文件: gox -osarch="windows/amd64" 只生成mac平台…
起因: 在项目中,我们每一次提交都需要添加commit 信息,而且我们的commit 信息,比较繁琐.我决定用golang语言编写一个小工具. 我决定使用语言:golang,使用工具:gox包. gox github  https://github.com/mitchellh/gox 创建一个文件,写入以下golang代码,过于简单不做解释. package main import ( "time" "fmt" "io/ioutil" "…
环境:Debian jessiego 1.7.4Windows 7 背景: 在debian中写好的程序编译后在windows上运行. 程序中使用了sqlite3 import( _ "github.com/mattn/go-sqlite3" ) 问题: 在debian上使用如下语句编译后,在windows7里运行会提示sqlite3有问题: CGO_ENABLED= GOOS=windows GOARCH=amd64 go build 问题如下: database connection…
GOOS:目标平台的操作系统(darwin.freebsd.linux.windows) GOARCH:目标平台的体系架构(386.amd64.arm) Mac 下编译 Linux 和 Windows 64位可执行程序 CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build Linux 下编译 Mac 和 Windows 64位可执行程序 CGO_ENABLED…
mac 下编译其他平台的执行文件方式请参看这篇文章,http://www.cnblogs.com/ghj1976/archive/2013/04/19/3030703.html  本篇文章是win下的跨平台编译. 安装GCC编译器(MinGW) 我们需要GCC编译环境,这里我选择的是:MinGW. mac 下安装了Xcode自动就带了GCC,win下没有,所以我们用MinGW这个最小化安装的GCC. MinGW官网提供了一种自动在线下载安装的gui小程序,http://sourceforge.n…
记录的是 本地编译好了再创建容器镜像的方法 ,这样子生成的镜像文件比较小,方便分发部署 win 平台需要设置golang交叉编译 生成linux可执行文件 CMD下: Set GOOS="linux" Set GOARCH="amd64" PowerShell下: $env:GOOS="linux" $env:GOARCH="amd64" 这两个参数吃常用选项:GOARCH 目标平台(编译后的目标平台)的处理器架构(386.a…
1 下载安装msys2 MSYS2 (Minimal SYStem 2) 是一个MSYS的独立改写版本,主要用于 shell 命令行开发环境.同时它也是一个在Cygwin (POSIX 兼容性层) 和 MinGW-w64(从”MinGW-生成”)基础上产生的,追求更好的互操作性的 Windows 软件. 官方网址:http://www.msys2.org/ 百度云下载地址:https://pan.baidu.com/s/1kWOBbBD 默认配置安装即可: 运行msys2: 2 安装所需软件 注…
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安装跟目录 G…
打包,压缩 我们的常规打包方式 $ go build Mac下我们用 ls -lh查看,可以看到我们打包出来的可执行文件会比较大,一般只写几行代码就回又3M以上的文件大小了. 我们的带压缩的打包方式 $ go build -ldflags '-w -s' Mac下我们用 ls -lh查看,可以看到我们打包出来的文件明显比刚才的小了一些,但是,也有2M之多. 压缩可执行文件(终极压缩) 我们使用第三方的压缩工具https://github.com/upx/upx/releases, Mac, li…
目录 golang编译源代码和交叉编译方法 编译源代码 编译go1.4 编译go1.12 交叉编译 golang编译源代码和交叉编译方法 编译源代码 golang编译其实很简单,下载一份最新的源代码后,进入src目录运行all.bash即可, 但是你可能会遇到下面问题,这是因为现在golang都是用go语言编译的了,所以你的系统必须先安装好 >= go1.4 的版本. ./all.bash Building Go cmd/dist using /home/ailumiyana/go1.4. ER…
原文地址:Golang 在 Mac.Linux.Windows 下如何交叉编译 Golang 支持交叉编译,在一个平台上生成另一个平台的可执行程序,最近使用了一下,非常好用,这里备忘一下. Mac 下编译 Linux 和 Windows 64位可执行程序 CGO_ENABLED= GOOS=linux GOARCH=amd64 go build main.go CGO_ENABLED= GOOS=windows GOARCH=amd64 go build main.go Linux 下编译 Ma…
Golang 支持在一个平台下生成另一个平台可执行程序的交叉编译功能. Mac下编译Linux, Windows平台的64位可执行程序: CGO_ENABLED= GOOS=linux GOARCH=amd64 go build gofile.go CGO_ENABLED= GOOS=windows GOARCH=amd64 go build gofile.go Linux下编译Mac, Windows平台的64位可执行程序: CGO_ENABLED= GOOS=darwin GOARCH=am…
CentOS7中_带sqlite3_CGO的golang程序_交叉编译到arm中 转载注明来源: 本文链接 来自osnosn的博客,写于 2019-10-28. 编写了个golang程序,用到了这个CGO库github.com/mattn/go-sqlite3,用来支持sqlite3. 在x86_64机器中编译运行都ok.另有一台arm机器,装了armbian. 想在x86_64机器中交叉编译到arm64,碰到了一些问题. 经过摸索,似乎解决了.写下笔记给后来人参考. 环境: x86_64机器,…
转自 https://blog.csdn.net/panshiqu/article/details/53788067 Golang 支持交叉编译,在一个平台上生成另一个平台的可执行程序,最近使用了一下,非常好用,这里备忘一下. Mac 下编译 Linux 和 Windows 64位可执行程序 CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build…
#!/usr/bin/env bash set -e uname_s=`uname -s | awk '{print tolower($0)}'` uname_m=`uname -m` timeTag="-X 'main.BuildTime=$(date '+%Y-%m-%d %H:%M:%S')'" branchFlag="-X main.GitBranch=$(git name-rev --name-only HEAD)" commitFlag="-X…
Golang 支持交叉编译,即在一个平台上生成另一个平台的可执行程序.方法如下: Mac 下编译 Linux 和 Windows 64位可执行程序 CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go Linux 下编译 Mac 和 Windows 64位可执行程序 CGO_ENABLED=0 GOOS=darwin GOARC…
一. 前言 Golang 支持交叉编译, 在一个平台上生成然后再另外一个平台去执行. 而且编译的工具[build]这个工具是Golang 内置的,不需要你去下载第三方的包啥的,贼方便. 二. 交叉编译 Mac 下编译, Linux 或者 Windows 下去执行 # linux 下去执行 CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go # Windows 下去执行 CGO_ENABLED=0 GOOS=windows GOARCH=a…
俺的环境,os x,目的,生成64位linux的elf文件 直接下载osx的包就可以,不需要特意去下载源码包,我的go目录是~/golang/go cd ~/golang/go/srcGOOS=linux GOARCH=amd64 ./make.bash 终端党 到工程目录直接执行 GOOS=linux GOARCH=amd64 go build liteIde党 编译cross-linux64的配置文件,大概和这样差不多 # cross-compiler linux amd64 GOROOT=…
https://blog.csdn.net/panshiqu/article/details/53788067…
最佳实践 1 包管理 1.1 使用包管理对Golang项目进行管理,如:godep/vendor等工具 1.2 main/init函数使用,init函数参考python 1.2.1 main->import->const->var->init 1.2.2 同一个package属于一个作用域,所以不要重复定义变量等 1.3 万能的type 1.3.1 type ages int type money float32 type months map[string]int 定义新类型 1…
参考  https://golang.org/doc/install 自ECUG2013洗脑回来,就渴望早点接触Go 听着许式伟和谢孟军的演讲 发现go的网络库的确很强大,高负载利器,语言的一些精简导致很容易写出高效代码,而且开发效率  很高 不,应该是非常高   .(rpcjson,xml,.....其他一些自带的库也都很成熟) 是不是传说中的好东东,必须自己用了才能知道 ECUG视频传送们 www.youtube.com/watch?v=af7qOeN9Mvk 推荐一些相关书籍 学写的话,当…
golang 很好用,不过要把工具链弄完整. 要不你会发现怎么不能编译跨平台的呀? 怎么写代码没提示啊? ... 这一整套弄下来并不容易. 所以精心准备了一套工具方便大家使用. 软件列表如图. 安装顺序比较重要,依次为:wxdevcpp_7.4.2_full_setup.exego1.7.3.windows-386.msiliteidex30.3.windows-qt5.zip 原因是 golang 跨平台编译需要 gcc,而 liteide 又需要它们两者. -----------------…
1.vultr可以用微信或支付宝充值,方便.好像推荐别人用还能挣美分,懒得弄了,参加了一个充10刀送50刀的活动,感觉实惠(实际用时感觉有点小贵). 2.注册登录后,控制面板上billing可查看余额.servers中可部署操作系统,我部署了一个最便宜的Centos7(可以部署多个,我部署完查看余额少了1美分) 3.部署的server名最右边有三个点,点击后的菜单中有View Console,是一个运行在浏览器中的Consol.(点开部署的server,可以找到用户名root和密码),登录Vie…
今天接到一个任务是将原来运行在mac的应用移植到linux,原因当然是因为客户那边当前是linux环境,也不想再采购mac电脑. 通常来说,这个工作并不难,因为我选用的服务器端技术是c或者golang,这两种技术具有很好的可移植性,而且大多是重新编译即可运行,所以接到任务的开始并没有把这个当一回事. 跟想象中的也差不多,搭建好linux测试服务器,在mac上把运行很久的应用重新交叉编译了一遍,部署到linux实验环境,启动.测试,看起来一切正常.准备打包交活,这时候发现一个问题,程序无法终止.…