Go_Go的跨平台编译_交叉编译?
来源:互联网 发布:阿里云esc 代码部署 编辑:程序博客网 时间:2024/06/14 05:07
源地址 http://studygolang.com/topics/21
后加:
以下经过本人实际测试, 只需要进行(2)即可。
可能小部分的go版本存在bug,很不幸被我碰到了。
github issue:
https://github.com/golang/go/issues/15018
https://github.com/golang/go/issues/16478
原先内容:
(1)首先进入go/src 源码所在目录(Go的安装目录),执行如下命令创建目标平台所需的包和工具文件。
$ cd /usr/local/go/src
$ CGO_ENABLED=0 GOOS=linux GOARCH=amd64 ./make.bash
如果是 Windows 则修改 GOOS 即可。
$ CGO_ENABLED=0 GOOS=windows GOARCH=amd64 ./make.bash
(2) 现在可以编译 Linux 和 Windows 平台所需的执行文件了。
$ CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build
$ CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build
不过该方式暂时不支持 CGO。
http://solovyov.net/en/2012/03/09/cross-compiling-go/
以上假定是64位架构,32位,修改GOARCH为386
说明:
这里并不是重新编译Go,因为安装Go的时候,只是编译了本地系统需要的东西;而需要跨平台交叉编译,需要在Go中增加对其他平台的支持。所以,有 ./make.bash 这么一个过程
交叉编译问题补充:
首先,建议安装Go语言通过源码安装,否则可能没有make.bash或make.bat程序。
之所以需要执行上面的这些步骤,是因为安装Go语言时,一些工具和平台相关的代码并没有生成,执行上面的步骤,并不是重新安装Go语言,而是生成交叉编译(目标平台)需要的工具和文件。这些只是在第一次交叉编译的时候做。之后就不需要了。
为了更快的编译,可以
./make.bash --no-clean
- Go_Go的跨平台编译_交叉编译?
- Golang跨平台交叉编译
- minGW, cygwin, GnuWin32【C++的跨平台交叉编译问题】
- minGW, cygwin, GnuWin32【C++的跨平台交叉编译问题】
- ARM-Linux平台的Busybox交叉编译
- Android平台下FreePascal的交叉编译
- 交叉编译arm平台的qt库
- 交叉编译arm平台的libxml2
- golang不同平台间的交叉编译
- DAVINCI平台交叉编译gstreamer
- arm平台交叉编译链
- MIPS平台交叉编译zlib
- 配置树莓派交叉编译平台
- 配置树莓派交叉编译平台
- 配置树莓派交叉编译平台
- 三、搭建交叉编译平台
- 交叉编译ARM平台coreutils
- 交叉编译openssl arm平台
- 10131
- 10132
- Android监听ScrollView的滚动事件
- python 调用c库
- html中一些常见问题的解决方法
- Go_Go的跨平台编译_交叉编译?
- java的xml读写
- Impala源码解析 - 了解Impala Catalog加载过程和到底加载了什么
- logback 的配置和使用
- EL表达式在设计模式应用(VO类+jsp+Sevlet)
- Linux 学习笔记 十三
- [leetcode]283. Move Zeroes
- 关于沟通的思考
- node.js Path模块