使用 os/exec 命令从 Windows 交叉编译到 Linux

标题主要说明了这一点。我知道我能做到

set GOOS=linux
set GOARCH=amd64

在我之前的 cmd 中go build,但我正在尝试编写构建脚本并使用 exec.Command 完成所有操作。

go build -o etc使用 exec.Command(它构建)工作,但是在执行以下任一命令后在测试脚本中打印出 GOOS 时:

cmd := exec.Command("set", "GOOS=linux")
// OR
cmd := exec.Command("set GOOS=linux")

我明白了windows

有任何想法吗?谢谢!


守着一只汪
浏览 112回答 1
1回答

largeQ

我强烈建议你只使用像Gox这样的工具。它通过执行交叉编译到每个支持的构建目标gox。如果您只想为某些目标构建,它也有选项。至于你问的代码,exec.Command不创建新进程,或者除了创建Cmd结构之外真的做任何事情。os/exec 文档(特别是Command函数的文档)有一个您似乎正在尝试执行的示例 - 使用自定义环境变量分配执行另一个程序......请参阅Example (Environment)链接文档的部分并尝试遵循该部分structure 如果你仍然想交叉编译你的方式。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go