【问题标题】:How to cross compile如何交叉编译
【发布时间】:2019-05-04 10:26:45
【问题描述】:

我只是从linux amd64 位架构为linux ARM64 位架构构建简单的应用程序,但是在构建 GOlang 构建器时,绑定一些库时出错,如下所示

go build github.com/DataDog/zstd: build constraints exclude all Go files in

我只是想知道,为了构建不同的交叉编译架构,是否需要该特定架构的任何库? 前任。如果我正在为ARM64 库构建,那么我的系统上安装了ARM64 支持的库?

谢谢

【问题讨论】:

  • 运行 go build 不会交叉编译。您应该使用GOARCH=amd64 go build ... 进行交叉编译。要交叉编译纯 Go 代码,您所需要的只是 Go 安装的一部分。如果包需要特殊的 C 库:请查阅该包的文档。
  • 正如 Volker 所说,官方 Go SDK 能够交叉编译到支持的操作系统和架构组合,而无需额外的文件和工具。第三方软件包是否具备所需的一切是另一个问题。
  • 命令编译env GOOS=linux GOARCH=arm64 go build 仍然给出错误的交叉环境,正如我所提到的。我真的没有得到实际上是什么错误:(

标签: go cross-platform cross-compiling


【解决方案1】:

尝试如下设置环境变量。之后,您可能需要先获取外部依赖项,然后再进行构建。 GOARCH = "arm64"

【讨论】:

  • 已经完成了...仍然有问题,所以这就是为什么我发布问题以获取有关交叉编译的更多信息
猜你喜欢
  • 2014-04-30
  • 2014-07-10
  • 2011-07-14
  • 2020-12-15
  • 1970-01-01
  • 1970-01-01
  • 2015-07-13
  • 2011-03-13
  • 2014-01-09
相关资源
最近更新 更多