打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
/lib/x86

今天编译一个工程,在目标机上运行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库所致

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
Linux 修改 ELF 解决 glibc 兼容性问题
Linux/CentOS 升级C基本运行库CLIBC的注意事项(当想解决GLIBC
使用源代码将Glibc升级到2.6
Lenky个人站点 ? Linux下应用程序内测量时间的各种方法
Ubuntu12.04 安装ltib遇到的问题及解决办法
搭建交叉调试环境arm
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服