查找库所链接的库版本

nbu*_*bis 8 ubuntu libraries

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

我的想法是尝试找到使用的不同库(例如内核)的版本,知道这些版本随不同的发行版而变化。我试过使用nmand ldd,但我似乎找不到任何相关信息。

有什么建议?

Jar*_*nen 5

也许

 readelf -a 
Run Code Online (Sandbox Code Playgroud)

它显示有关 ELF 文件的信息。如果你正在研究的对象仍然包含评论部分,你可以尝试通过

 readelf -p .comment yourfile
Run Code Online (Sandbox Code Playgroud)

例如

$ 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
Run Code Online (Sandbox Code Playgroud)

objdump 可以提供相同的信息。

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