Golang 交叉编译
woodzcl · · 2860 次点击 · · 开始浏览Go 在ver>=1.5的版本中,实现交叉编译如此简单
一
交叉编译依赖下面几个环境变量:
$GOARCH 目标平台(编译后的目标平台)的处理器架构(386、amd64、arm)
$GOOS 目标平台(编译后的目标平台)的操作系统(darwin、freebsd、linux、windows)
各平台的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
二 go源码
//test.go
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
三 编译windows平台下的exe文件
ubuntu下交叉编译
# CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build test.go
# ls
test.exe test.go
四 验证
//拷贝至windows下运行(SecureCRT)
C:\WINDOWS\system32>C:\test.exe
Hello, World!
Finally:
Golang,我又回来了,岁月如初,你可安好?
哈哈哈
有疑问加站长微信联系(非本文作者)
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
关注微信- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码` - 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传
收入到我管理的专栏 新建专栏
Go 在ver>=1.5的版本中,实现交叉编译如此简单
一
交叉编译依赖下面几个环境变量:
$GOARCH 目标平台(编译后的目标平台)的处理器架构(386、amd64、arm)
$GOOS 目标平台(编译后的目标平台)的操作系统(darwin、freebsd、linux、windows)
各平台的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
二 go源码
//test.go
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
三 编译windows平台下的exe文件
ubuntu下交叉编译
# CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build test.go
# ls
test.exe test.go
四 验证
//拷贝至windows下运行(SecureCRT)
C:\WINDOWS\system32>C:\test.exe
Hello, World!
Finally:
Golang,我又回来了,岁月如初,你可安好?
哈哈哈