Go 交叉编译
来源:互联网 发布:swoole 源码 编辑:程序博客网 时间:2024/06/16 10:22
Go交叉编译
Go在1.5版本中改进了对交叉编译的支持,包括统一了编译器、链接器等。从版本1.5开始,对你开发的应用程序进行夸平台交叉编译就变得相当简单了。只需要设置两个环境变量就可以搞定,分别是GOOS
和GOARCH
。
环境变量
- GOOS是你的应用程序将要运行平台的操作系统
- GOARCH是你的应用程序将要运行平台的处理器架构。
有效的$GOOS
和$GOARCH
组合如下:
$GOOS$GOARCH android arm darwin 386 darwin amd64 darwin arm darwin arm64 dragonfly amd64 freebsd 386 freebsd amd64 freebsd arm linux 386 linux amd64 linux arm linux arm64 linux ppc64 linux ppc64le linux mips linux mipsle linux mips64 linux mips64le netbsd 386 netbsd amd64 netbsd arm openbsd 386 openbsd amd64 openbsd arm plan9 386 plan9 amd64 solaris amd64 windows 386 windows amd64
编译方式
如果要对应用程序进行跨平台编译,首先需要设置GOOS
和GOARCH
两个环境变量。然后编译方式同本平台编译方式相同。
所以进行夸平台编译,为便于理解拆分开来需要执行两个步骤:
- 设置
GOOS
和GOARCH
两个环境变量 - 执行
go build
示例
鉴于你可能需要编译多个平台的可执行程序,所以不建议你将GOOS
和GOARCH
两个环境变量在bashrc
之类的文件中进行设置。
分两步操作也可能有点麻烦,你可以直接在一条命令中执行。如下:
env GOOS=linux GOARCH=arm go build -v github.com/constabulary/gb/cmd/gb
你也可以进入到project的根目录下,而不用在命令行中指定需要编译的project:
env GOOS=linux GOARCH=arm go build .
默认情况下go build
会生成你package(project)名相同的可执行文件。如果你想指定生成的可执行文件的名字,需要使用-o
选项:
env GOOS=linux GOARCH=arm go build -o test.bin .
参考链接:
Go Optional environment variables
Cross Compile with Go 1.5
0 0
- Go 交叉编译
- go交叉编译
- go交叉编译
- 交叉编译Go程序
- 搭建go交叉编译环境
- Go学习笔记:golang交叉编译
- OSX平台下跨平台编译Go程序(交叉编译)
- 交叉编译
- 交叉编译
- 交叉编译
- 交叉编译
- 交叉编译
- 交叉编译
- 交叉编译
- 交叉编译
- 交叉编译
- 交叉编译
- 交叉编译
- L1-010. 比较大小
- Django_学习问题汇总
- java多线程(14)--线程池作用及Executors方法讲解
- Node.js浏览器调试
- String的那点小事儿
- Go 交叉编译
- linux 系统 火狐浏览器(firefox)屏蔽优酷广告
- LRU缓存介绍与实现 (Java)
- Java 动态代理机制分析及扩展
- Linux下目录和文件的权限
- 【转】Netty那点事(一)概述
- 【转】Netty那点事(二)Netty中的buffer
- 【转】Netty那点事(三)Channel中的Pipeline
- 【转】Netty那点事(四)Netty与Reactor模式