查找链接到库的库版本


8

我有一个在未知的Ubuntu机器上编译的库,并且我想确定该机器在编译时所用的Ubuntu版本。

我的想法是尝试找出所使用的不同库(例如内核)的版本,因为它们会随着不同的发行版而发生变化。我尝试使用nmldd,但似乎找不到任何相关信息。

有什么建议么?

Answers:


5

也许

 readelf -a 

它显示有关ELF文件的信息。如果您正在研究的对象仍然包含注释部分,则可以尝试通过以下方式提取它:

 readelf -p .comment yourfile

例如

$ cat test.c
int main () {
  return 0;
}
$ gcc test.c
$ readelf -p .comment a.out

String dump of section '.comment':
  [     0]  GCC: (Ubuntu/Linaro 4.6.1-9ubuntu3) 4.6.1

objdump 可以提供相同的信息。

如果删除了注释部分,则readelf -a如果它是c ++编译的库,则可以尝试从命令中读取GCC运行时符号版本信息 。注意,这是提供给编译器的符号版本,不一定是编译器的版本。我不知道追踪Ubuntu版本会有多大用处。


看起来
不太理想

你能解释一下你如何去做吗?Iv通过了readelf输出,但没有发现任何有用的东西。谢谢!
nbubis

我已经编辑了答案以包含示例。
加里·拉曼宁
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.