gpt4 book ai didi

go - 如何从 Go 库中获取对象构建信息?

转载 作者:IT王子 更新时间:2023-10-29 02:17:57 24 4
gpt4 key购买 nike

我正在尝试构建一个 Go 程序,我的系统上有一个二进制形式的必需库。然而,go build 失败了

object is [linux amd64 go1.1.1 X:none] expected [linux amd64 go1.1.2 X:none]

我明白了眼前的问题是什么:静态库是用旧版本的 Go 构建的。如何直接从 .a 文件中读取该信息? (我可以通过 strings library.a | grep '^go object' 看到它,但是是否有什么东西意味着输出构建字符串?(而且,那是什么正确调用字符串?)

最佳答案

Go 编译器生成的 .a 文件使用 pack 工具进行管理。用于链接包的元数据位于存档的 __.PKGDEF 成员中。

您可以使用以下命令将此文件从存档中提取到 stdout:

go tool pack p path/to/package.a __.PKGDEF

它以您想要的构建签名开始,因此您可以使用第一行或 grep 获取 ^go object,就像处理 strings 的输出一样(这应该更可靠一些,以防文本在程序代码中显示为常量)。

关于go - 如何从 Go 库中获取对象构建信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18939966/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com