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 GOARCH=amd64 ./make.bash
这里并不是重新编译Go,因为安装Go的时候,只是编译了本地系统需要的东西;而需要跨平台交叉编译,需要在Go中增加对其他平台的支持。所以,有 ./make.bash 这么一个过程。
执行结果类似如下:
sudo CGO_ENABLED=0 GOOS=linux GOARCH=amd64 ./make.bash
Password:
Building C bootstrap tool.
cmd/dist
Building compilers and Go bootstrap tool for host, darwin/amd64.
lib9
libbio
libmach
misc/pprof
cmd/addr2line
cmd/cov
cmd/nm
cmd/objdump
cmd/pack
cmd/prof
cmd/cc
……
pkg/text/template/parse
pkg/text/template
pkg/go/doc
pkg/go/build
cmd/go
pkg/runtime (linux/amd64)
Building packages and commands for host, darwin/amd64.
runtime
errors
sync/atomic
unicode
unicode/utf8
math
sync
unicode/utf16
crypto/subtle
io
syscall
……….
net/rpc/jsonrpc
testing/iotest
testing/quick
Building packages and commands for linux/amd64.
runtime
errors
sync/atomic
unicode
unicode/utf8
math
sync
unicode/utf16
……..
testing
net/rpc/jsonrpc
testing/iotest
testing/quick
Installed Go for linux/amd64 in /usr/local/go
Installed commands in /usr/local/go/bin
三、编译对应平台下的执行文件
到源代码目录下执行:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build sina.go
不带前面参数的 go build 只是编译出开发环境适用的执行文件。
原文来自:http://m.oschina.net/blog/131480
最新文章
- TransactionScope使用说明
- C#控制定位Word光标移动到任意行或者最后一行,取得光标位置等操作
- InstallShield自定义图片资源
- alias
- HybridAPP开发框架Ionic+AngularJS+Cordova搭建
- 解决Android编译时出现aapt.exe finished with non-zero exit value 1(第二篇)
- 关于SQL数据库 msdb.dbo.sp_send_dbmail 函数发送邮件的几个实例
- Spring集成ElasticSearch搜索引擎
- react 项目搭建
- table固定列的宽度,超出部分用…代替(针对普通table和antd)
- 1003. Check If Word Is Valid After Substitutions Medium检查替换后的词是否有效
- 顺序容器----顺序容器操作,vector对象如何增长,额外的string操作,容器适配器
- 基于区域的OSPF简单认证
- Java泛型深入理解(转载)
- es6基础(3)-正则扩展
- php &; 变量引用、函数引用、对象引用
- 战斗bug技巧全攻略
- Linux安装bundle
- 开源直播OBS ( Open Broadcaster Software ) 多机位,多场景切换
- Mysql: Connect/C++ 使用过程中发现返回 std::string 造成的内存泄露