/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.17' not found 解决办法

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/hbuxiaofei/article/details/46012833

今天编译一个工程,在目标机上运行app,出现了这个错误。



下面我们由这条报错信息入手,寻找问题的答案:
1.首先保证程序没有被strip,也就是说可执行程序含有符号表信息。
2.出现这个问题的原因是glibc的版本太低,查看系统glibc支持的版本
root@ubuntu:/dvr# strings  /lib/x86_64-linux-gnu/libc.so.6 | grep GLIBC_
GLIBC_2.2.5
GLIBC_2.2.6
GLIBC_2.3
GLIBC_2.3.2
GLIBC_2.3.3
GLIBC_2.3.4
GLIBC_2.4
GLIBC_2.5
GLIBC_2.6
GLIBC_2.7
GLIBC_2.8
GLIBC_2.9
GLIBC_2.10
GLIBC_2.11
GLIBC_2.12
GLIBC_2.13
GLIBC_2.14
GLIBC_2.15
GLIBC_PRIVATE
发现系统支持的最高版本为GLIBC_2.15,显然不支持GLIBC_2.17。

3.使用反汇编命令objdump -p 查看库文件版本等信息,我们可以看到
root@ubuntu:/dvr# objdump -p hxht


Version References:
  required from libpthread.so.0:
    0x09691a75 0x00 05 GLIBC_2.2.5
  required from libc.so.6:
    0x06969194 0x00 10 GLIBC_2.14
    0x06969195 0x00 09 GLIBC_2.15
    0x0d696914 0x00 08 GLIBC_2.4
    0x06969197 0x00 07 GLIBC_2.17
    0x0d696917 0x00 06 GLIBC_2.7
    0x09691a75 0x00 04 GLIBC_2.2.5
    0x09691974 0x00 03 GLIBC_2.3.4
    0x0d696913 0x00 02 GLIBC_2.3

4.nm 命令显示关于指定 File 中符号的信息
root@ubuntu:/dvr# nm hxht | grep GLIBC_2.17
                 U clock_gettime@@GLIBC_2.17
我们发现clock_gettime()这个函数使用了GLIBC_2.17

由此我们断定问题是由于clock_gettime()这个函数使用了GLIBC_2.17库所致




展开阅读全文

没有更多推荐了,返回首页