代码之家  ›  专栏  ›  技术社区  ›  apxp

如何在windows 10上交叉编译go程序

  •  5
  • apxp  · 技术社区  · 8 年前

    我想为linux机器编译一个go程序。我总是用下面描述的方式:

    How to cross compile from Windows to Linux?

    在windows 10的最后一次大更新之前,这一切都很顺利。现在我无法设置 GOOS 具有

    set GOOS=linux
    

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

    1 回复  |  直到 8 年前
        1
  •  7
  •   icza    8 年前

    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