Go 如何交叉编译
我只是从Go 如何交叉编译,go,cross-platform,cross-compiling,Go,Cross Platform,Cross Compiling,我只是从linux-amd64位体系结构为linux-ARM64位体系结构构建简单的应用程序,但在构建GOlang builder时,绑定一些库时出错,如下所示 go build github.com/DataDog/zstd:build约束排除了中的所有go文件 我只是想知道,为了构建不同的交叉编译体系结构,是否需要该体系结构的库? 例如,如果我正在为ARM64库构建,那么ARM64支持的库安装在我的系统上 谢谢尝试如下设置环境变量。在构建之前,您可能需要先获取外部依赖项。 GOARCH=“
linux-amd64
位体系结构为linux-ARM64
位体系结构构建简单的应用程序,但在构建GOlang builder时,绑定一些库时出错,如下所示
go build github.com/DataDog/zstd:build约束排除了中的所有go文件
我只是想知道,为了构建不同的交叉编译体系结构,是否需要该体系结构的库?
例如,如果我正在为ARM64
库构建,那么ARM64
支持的库安装在我的系统上
谢谢尝试如下设置环境变量。在构建之前,您可能需要先获取外部依赖项。
GOARCH=“arm64”运行
go-build
不会交叉编译。您应该执行一个GOARCH=amd64 go build…
来交叉编译。要交叉编译普通Go代码,您所需要的只是Go安装的一部分。如果一个软件包需要特殊的C库:请查阅该软件包的文档。正如Volker所说,官方的Go SDK能够交叉编译到支持的操作系统和架构组合,而不需要额外的文件和工具。第三方软件包是否具备所需的一切是另一个问题。编译跨环境的命令env-GOOS=linux-GOARCH=arm64-go-build
,正如我提到的,仍然会出现错误。我真的不知道错误到底是什么:(已经做过了…仍然有问题,所以这就是为什么我发布这个问题来获取关于交叉编译的更多信息