我有一个在未知 Ubuntu 机器上编译的库,我想确定该机器在编译时使用的 Ubuntu 版本。
我的想法是尝试找到所使用的不同库(例如内核)的版本,并知道这些版本随着不同的版本而变化。我尝试使用nm
and ldd
,但我似乎找不到任何相关信息。
有什么建议么?
答案1
或许
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 版本有多大用处。