一尘不染

如何在Windows 10上交叉编译Go程序

go

这工作得很好,直到从Windows 10,现在是最后的大更新,我不能够设置GOOS

set GOOS=linux

我也尝试以管理员身份启动PowerShell,但即使这样也无法正常工作。有什么工具可以做到这一点?还是有另一种方法可以在Windows
10上交叉编译Go程序?


阅读 331

收藏
2020-07-02

共1个答案

一尘不染

set是Windows命令行解释器(cmd.exe)的内部命令。

如果您使用的是PowerShell,则更改环境变量的值应如下所示:

$Env:<variable-name> = "<new-value>"

有关更多详细信息,请参阅PowerShell文档:关于环境变量

因此要更改GOOS,请使用:

$Env:GOOS = "linux"

进行交叉编译:

  1. 导航到main包所在的文件夹。

  2. $Env:GOOS = "linux"

  3. 可选运行 $Env:GOARCH = "amd64"

  4. go build

或者您可以单行执行:

$Env:GOOS = "linux"; $Env:GOARCH = "amd64"; go build

要指定输出文件名:

$Env:GOOS = "linux"; $Env:GOARCH = "amd64"; go build -o hello
2020-07-02