windows上交叉编译go语言为linux可执行程序

交叉编译

在一个平台上生成另一个平台可执行的文件,就叫做交叉编译。

一个cpu体系可以有不同的操作系统,一个操作系统也可以使用不同的架构平台。

有了交叉编译,我们在windows上写的程序,也可以生成在linux运行的二进制程序,可以说写一次代码,可以各个平台运行。

go

通过使用go version 可以查看当前go的版本

go version go1.13.1 windows/amd64

笔者的当前环境是go1.13.1

目前交叉编译非常方便,命令也很简单,直需要在cmd命令上设置环境变量即可,记住,不要使用powershell ,要使用cmd才行。

set GOARCH=amd64
set GOOS=linux

go build

powershell 交叉编译

powershell和cmd设置环境变量的方式不一样

$env:GOPATH="amd64"
$env:GOOS="linux"

go build -o "web"

通过-o指定编译的文件名,linux可执行文件不需要后缀名.