在 Go 中交叉编译 pkg 导入

Cross compiled pkg import in Go

我想在 Windows 上使用名为 "go-yara" 的 go 模块,我在基于 Debian 的 Linux 系统上交叉编译了它。一切都按预期工作。该构建在 $GOPATH/pkg/windows_386/github.com/hillu/ 文件夹中创建了一个 go-yara.a 文件。

然而,当我尝试在 go 程序中使用该模块时,它似乎试图从 src 重新编译模块,指出 yara.h 文件丢失。对,那是正确的。 Windows 上没有 yara.h。在 Linux 上编译 yara 及其头文件对我来说要容易得多。

Linux交叉编译时确实需要这个文件。为什么我在 Windows 上也需要它? pkg文件夹里的go-yara.a不就够了吗?为什么它忽略 .a 文件并尝试从其源代码编译模块?我可以强制使用pkg文件夹中的预编译模块吗?

我是 Golang 的新手,所以请原谅我的无知。

根据 go-yara 的说明,您需要在 Debian 机器上编译它们。 go-yara 上的 Go 编译说明显示它在 windows 386 的 debian 机器上交叉编译。所以你会 运行 在你的 Debian 构建机器上,然后复制 windows 二进制文件运行 应用程序。