为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
30秒到达战场 2021-06-22 17:01:17
我正在尝试构建一个 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',但有东西是指输出构建字符串?(而且,什么是正确称为该字符串?)
查看完整描述

1 回答

?
慕沐林林

TA贡献2016条经验 获得超9个赞

.aGo 编译器生成的文件使用该pack工具进行管理。用于链接包的元数据可__.PKGDEF在存档成员中找到。

您可以将此文件从存档中提取到stdout

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

它以您所追求的构建签名开始,因此您可以采用第一行或 grep for^go object与输出一样strings(这应该更可靠一些,以防文本在程序中显示为常量代码)。


查看完整回答
反对 回复 2021-06-28
  • 1 回答
  • 0 关注
  • 171 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信