加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

golang交叉编译工具,gox使用入门

发布时间:2020-12-16 18:57:06 所属栏目:大数据 来源:网络整理
导读:gox入门教程 先说下交叉编译是什么? 交叉编译也就是你可以在linux上编译出可以在windows上运行的程序,在32位系统编译出64位系统运行的程序。 gox就是方便你使用golang的交叉编译的工具。 安装gox 首先你的机器上需要装有golang。配置好了GOROOT,GOPATH这两

gox入门教程

先说下交叉编译是什么? 交叉编译也就是你可以在linux上编译出可以在windows上运行的程序,在32位系统编译出64位系统运行的程序。

gox就是方便你使用golang的交叉编译的工具。

安装gox

首先你的机器上需要装有golang。配置好了GOROOT,GOPATH这两个环境变量。 我机器上的配置是这个样子(仅供参考)

export GOROOT=$HOME/go
export GOPATH=$HOME/goproj
export GOBIN=$GOPATH/bin
export PATH=$PATH:$GOBIN

安装gox其实很简单(只需要2步)。

go get github.com/mitchellh/gox

之后命令行输入gox -h,应该会用输出的,不然你要检查下PATH变量设置的是否正确。

下一步需要编译出其他平台需要的库。这步有一点慢,要有点耐心。

gox -build-toolchain

输出大概是这个样子

The toolchain build can't be parallelized because 	compiling a single
Go source directory can only be done for one platform at a time. Therefore,the toolchain for each platform will be built one at a time.

--> Toolchain: darwin/386
--> Toolchain: darwin/amd64
...

当这一步完成时,gox已经可以开始能用了。

使用gox(简单入门)

下面我们来体验一下gox的强大。 需要注意的是gox没法指定一个文件进行编译的。

为方便起见,我们先到到$GOPATH/src下,建立一个hello文件夹。随便写个hello.go程序。比如

package main
func main() {
	println("hello world")
}

进入到程序目录中,直接运行gox。程序会一口气生成17个文件。横跨windows,linux,mac,freebsd,netbsd五大操作系统。以及3种了下的处理器(386、amd64、arm) 关于处理器的介绍可以看看这个http://www.361way.com/cpuinfo/1510.html arm类型的处理器,在手机上用的比较多。

使用gox(指定生成的平台(OS)和处理器(ARCH))

很多的选项其实gox -h的帮助都可以查的很清楚。

如果我们想生成linux和windows上的程序,只要通过一下命令:

gox -os "windows linux" -arch amd64

目录下你就能看到生成出来的两个程序

hello_linux_amd64
hello_windows_amd64.exe

也可以这样用,效果与刚才的命令等价

gox -osarch "windows/amd64 linux/amd64"

进阶

还可以继续学习的东西goxc,该工具封装了gox提供了更为强大的功能。

可能遇到的问题

  1. 交叉编译暂时还不支持CGO(估计再过1年也不会支持)

相关资源

  • 跨平台编译go程序
  • 如何使用golang的交叉编译
  • golang在线编译

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读