分享
  1. 首页
  2. 文章

go项目使用gox交叉编译,生成跨平台的可执行文件

wk3368 · · 4747 次点击 · · 开始浏览
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

【第一次安装】

1.安装gox

$ go get github.com/mitchellh/gox
$ cd $GOPATH/src/github.com/mitchellh/gox
$ go build

2.编辑~/.bash_profile(bsh) 或者~/.zshrc(zsh) 添加一行:

alias gox="$GOPATH/src/github.com/mitchellh/gox/gox"

新开终端,让设置生效。


3.生成本地工具链(如果go版本升级,比如从1.3.3升级到1.4,需要重新运行这个命令先)

$ gox -build-toolchain

【交叉编译项目】

1.比如有一个项目的目录在$GPATH/src/hello

$cd $GPATH/src/hello
$gox
Number of parallel builds: 8
--> darwin/386: hello
--> darwin/amd64: hello
--> linux/386: hello
--> linux/amd64: hello
--> linux/arm: hello
--> freebsd/386: hello
--> freebsd/amd64: hello
--> openbsd/386: hello
--> openbsd/amd64: hello
--> windows/386: hello
--> windows/amd64: hello
--> freebsd/arm: hello
--> netbsd/386: hello
--> netbsd/amd64: hello
--> netbsd/arm: hello
--> plan9/386: hello
--> dragonfly/386: hello
--> dragonfly/amd64: hello
--> solaris/amd64: hello

对应生成下面的各平台文件:

$ll
total 16768
drwxr-xr-x 23 wenke staff 782 12 30 19:42 .
drwxr-xr-x 7 wenke staff 238 12 28 16:21 ..
-rw-r--r-- 1 wenke staff 54 12 28 16:22 hello.go
-rwxr-xr-x 1 wenke staff 381420 12 30 19:42 hello_darwin_386
-rwxr-xr-x 1 wenke staff 467040 12 30 19:42 hello_darwin_amd64
-rwxr-xr-x 1 wenke staff 381536 12 30 19:42 hello_dragonfly_386
-rwxr-xr-x 1 wenke staff 469424 12 30 19:42 hello_dragonfly_amd64
-rwxr-xr-x 1 wenke staff 381296 12 30 19:42 hello_freebsd_386
-rwxr-xr-x 1 wenke staff 469240 12 30 19:42 hello_freebsd_amd64
-rwxr-xr-x 1 wenke staff 408336 12 30 19:42 hello_freebsd_arm
-rwxr-xr-x 1 wenke staff 390768 12 30 19:42 hello_linux_386
-rwxr-xr-x 1 wenke staff 475888 12 30 19:42 hello_linux_amd64
-rwxr-xr-x 1 wenke staff 413856 12 30 19:42 hello_linux_arm
-rwxr-xr-x 1 wenke staff 386440 12 30 19:42 hello_netbsd_386
-rwxr-xr-x 1 wenke staff 470448 12 30 19:42 hello_netbsd_amd64
-rwxr-xr-x 1 wenke staff 409224 12 30 19:42 hello_netbsd_arm
-rwxr-xr-x 1 wenke staff 381696 12 30 19:42 hello_openbsd_386
-rwxr-xr-x 1 wenke staff 469648 12 30 19:42 hello_openbsd_amd64
-rwxr-xr-x 1 wenke staff 365441 12 30 19:42 hello_plan9_386
-rwxr-xr-x 1 wenke staff 490296 12 30 19:42 hello_solaris_amd64
-rwxr-xr-x 1 wenke staff 385536 12 30 19:42 hello_windows_386.exe
-rwxr-xr-x 1 wenke staff 466944 12 30 19:42 hello_windows_amd64.exe

2.只生成mac和linux平台下的文件

$gox -os "darwin linux"
Number of parallel builds: 8
--> darwin/386: hello
--> darwin/amd64: hello
--> linux/386: hello
--> linux/amd64: hello
--> linux/arm: hello

3. 只生成linux平台amd64的文件
$gox -osarch="linux/amd64"
Number of parallel builds: 8
--> linux/amd64: hello




有疑问加站长微信联系(非本文作者)

本文来自:CSDN博客

感谢作者:wk3368

查看原文:go项目使用gox交叉编译,生成跨平台的可执行文件

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

关注微信
4747 次点击
添加一条新回复 (您需要 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传

用户登录

没有账号?注册
(追記) (追記ここまで)

今日阅读排行

    加载中
(追記) (追記ここまで)

一周阅读排行

    加载中

关注我

  • 扫码关注领全套学习资料 关注微信公众号
  • 加入 QQ 群:
    • 192706294(已满)
    • 731990104(已满)
    • 798786647(已满)
    • 729884609(已满)
    • 977810755(已满)
    • 815126783(已满)
    • 812540095(已满)
    • 1006366459(已满)
    • 692541889

  • 关注微信公众号
  • 加入微信群:liuxiaoyan-s,备注入群
  • 也欢迎加入知识星球 Go粉丝们(免费)

给该专栏投稿 写篇新文章

每篇文章有总共有 5 次投稿机会

收入到我管理的专栏 新建专栏