Windows 上的 golang:如何为 Linux 构建?

3 powershell environment-variables cross-compiling go

如何在 Windows 上为 Linux 编译 go 文件/项目?

在 Linux 上,它应该可以通过 one-liner 实现:

GOOS=windows go build -o filename.exe codefile.go
Run Code Online (Sandbox Code Playgroud)

我通过 Powershell 尝试了类似的东西,但在我的 Linux 服务器(Ubuntu 16.04 amd64)上只出现一个错误:

-bash: ./gotest: 无法执行二进制文件:Exec 格式错误”。

我在 Powershell 中尝试使用用户 Env-vars for GOOS = linuxandGOARCH = amd64和 via set GOOS = linux,但我对 Powershell 了解不够 - go build 命令运行时没有错误并生成文件。

任何人都可以使用 go-1.10 通过 Powershell(或 cmd)(通过 VS Code)解释 Windows(10 1709 x64)上的一般操作方法吗?

小智 8

使用 git bash 如果你已经安装了它?在你的机器上执行下面的命令

env GOOS=linux go build -o filename
Run Code Online (Sandbox Code Playgroud)

您可以通过以下方式为整个命令会话设置执行操作系统:

set GOOS=linux
go build -o filename
Run Code Online (Sandbox Code Playgroud)

它在相同的 Windows 10 版本上对我有用,并且在 Ubuntu 16.04 LTS 上运行流畅