go交叉编译基础(转载)
2019-04-15 本文已影响0人
embedsky
原文:https://www.jianshu.com/p/4b345a9e768e
前言
golang如何在一个平台编译另外一个平台可以执行的文件。比如在mac上编译Windows和linux可以执行的文件。那么我们的问题就设定成:如何在mac上编译64位linux的可执行文件。本文示例,在Ubuntu环境下编译aarch64开发板应用。
环境
编译环境:Ubuntu18.04
go版本:go version go1.12.1 linux/amd64
测试文件helloworld.go
package main
import "fmt"
func main() {
fmt.Printf("hello, world\n")
}
编译命令
GOOS=linux GOARCH=arm go build helloworld.go
参数说明
这里用到了两个变量:
- 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 |
编译其他平台的时候根据上面表格参数执行编译就可以了。