golang 跨平台编译指南

今日 get , golang 的跨平台编译

一些编译说明

Golang 作为一门跨平台语言,编译的时候自然也是可以跨平台编译的。

Mac 平台下跨平台编译其他平台应用:

1
2
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go	//linux
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go // windows

跨平台的编译操作都像上面的这个样子,我们来分析一下这一条代码的内容:

CGO_ENABLED :因为我们是跨平台编译,go并不支持CGO,所以我们需要关闭它。

GOOS :这个是设置你要编译的平台,目前可选的有(darwin, freebsd, linux, windows)

GOARCH: 这是目标系统的架构,比如(386, amd64, arm)。386就是32位的平台,amd64就是64位平台。

各平台的一些区别

windows 下,我们的编译指令有些不同,如下:

1
2
3
4
SET CGO_ENABLED=0
SET GOOS=darwin
SET GOARCH=amd64
go build main.go //编译mac平台64位应用

参数都是一样的,只不过windows下需要分四步输入才能编译,而对于linuxmac,它们的指令使用都是一致的,只需要一条即可交叉编译。

一些注意的事情

比如我们编译的时候碰到下面这种

image-20200503020400390

其实仔细理一下错误,这就是缺少一些需要的包而已,我们可以直接使用go get github.com/xxx/xxx 的方式直接下载,如果下载存在问题,建议直接到github上手动下载,然后将包放到对应的文件位置,然后我们就可以编译通过了。

评论


:D 一言句子获取中...