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

apx*_*pxp 5 windows powershell cross-compiling go

我想为Linux机器编译Go程序。我一直使用这里描述的方式:

如何从Windows交叉编译到Linux?

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

set GOOS=linux
Run Code Online (Sandbox Code Playgroud)

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

icz*_*cza 8

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

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

$Env:<variable-name> = "<new-value>"
Run Code Online (Sandbox Code Playgroud)

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

因此要更改GOOS,请使用:

$Env:GOOS = "linux"
Run Code Online (Sandbox Code Playgroud)

进行交叉编译:

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

  2. $Env:GOOS = "linux"

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

  4. go build

或者您可以单行执行:

$Env:GOOS = "linux"; $Env:GOARCH = "amd64"; go build
Run Code Online (Sandbox Code Playgroud)

要指定输出文件名:

$Env:GOOS = "linux"; $Env:GOARCH = "amd64"; go build -o hello
Run Code Online (Sandbox Code Playgroud)