Windows10 如何交叉编译 Go 程序

How to CrossCompile Go programs on Windows 10

我想为 linux 机器编译 Go 程序。我总是使用此处描述的方式:

How to cross compile from Windows to Linux?

在 Windows 10 的最后一次大更新之前一直运行良好。现在我无法将 GOOS 设置为

set GOOS=linux

我也尝试以管理员身份启动 PowerShell,但即使那样也不起作用。 有没有可以做到这一点的工具?或者还有其他方法可以在 Windows 10 上交叉编译 Go 程序吗?

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

如果您使用的是 PowerShell,则应按以下方式更改环境变量的值:

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

有关详细信息,请参阅 PowerShell documentation: About Environment Variables

所以要更改 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