在 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 二进制文件运行 应用程序。
我想在 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 二进制文件运行 应用程序。