免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5093 | 回复: 2
打印 上一主题 下一主题

【解决】为什么有些库系统自带了,可是里面的符号表却是空的无法使用,像icu4c库 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-09-05 10:22 |只看该作者 |倒序浏览
本帖最后由 yayu_myself 于 2011-09-05 14:17 编辑

系统是Ubuntu10.x的。。

icu4c是个进行软件国际化的库。。系统默认在/usr/lib下有相应的动态库文件,如下:
  1. $ ls -lh /usr/lib/libicu*
  2. lrwxrwxrwx 1 root root   18 2011-06-29 09:05 /usr/lib/libicudata.so -> libicudata.so.42.1
  3. lrwxrwxrwx 1 root root   18 2011-06-28 17:25 /usr/lib/libicudata.so.42 -> libicudata.so.42.1
  4. -rw-r--r-- 1 root root  16M 2009-11-24 06:55 /usr/lib/libicudata.so.42.1
  5. lrwxrwxrwx 1 root root   18 2011-06-29 09:05 /usr/lib/libicui18n.so -> libicui18n.so.42.1
  6. lrwxrwxrwx 1 root root   18 2011-06-28 17:25 /usr/lib/libicui18n.so.42 -> libicui18n.so.42.1
  7. -rw-r--r-- 1 root root 1.8M 2009-11-24 06:55 /usr/lib/libicui18n.so.42.1
  8. lrwxrwxrwx 1 root root   16 2011-06-29 09:05 /usr/lib/libicuio.so -> libicuio.so.42.1
  9. lrwxrwxrwx 1 root root   16 2011-06-28 17:25 /usr/lib/libicuio.so.42 -> libicuio.so.42.1
  10. -rw-r--r-- 1 root root  42K 2009-11-24 06:55 /usr/lib/libicuio.so.42.1
  11. lrwxrwxrwx 1 root root   16 2011-06-29 09:05 /usr/lib/libicule.so -> libicule.so.42.1
  12. lrwxrwxrwx 1 root root   16 2011-06-28 17:25 /usr/lib/libicule.so.42 -> libicule.so.42.1
  13. -rw-r--r-- 1 root root 222K 2009-11-24 06:55 /usr/lib/libicule.so.42.1
  14. lrwxrwxrwx 1 root root   16 2011-06-29 09:05 /usr/lib/libiculx.so -> libiculx.so.42.1
  15. lrwxrwxrwx 1 root root   16 2011-06-28 17:25 /usr/lib/libiculx.so.42 -> libiculx.so.42.1
  16. -rw-r--r-- 1 root root  50K 2009-11-24 06:55 /usr/lib/libiculx.so.42.1
  17. lrwxrwxrwx 1 root root   16 2011-06-29 09:05 /usr/lib/libicutu.so -> libicutu.so.42.1
  18. lrwxrwxrwx 1 root root   16 2011-06-28 17:25 /usr/lib/libicutu.so.42 -> libicutu.so.42.1
  19. -rw-r--r-- 1 root root 128K 2009-11-24 06:55 /usr/lib/libicutu.so.42.1
  20. lrwxrwxrwx 1 root root   16 2011-06-29 09:05 /usr/lib/libicuuc.so -> libicuuc.so.42.1
  21. lrwxrwxrwx 1 root root   16 2011-06-28 17:25 /usr/lib/libicuuc.so.42 -> libicuuc.so.42.1
  22. -rw-r--r-- 1 root root 1.3M 2009-11-24 06:55 /usr/lib/libicuuc.so.42.1
复制代码
可是用nm查看符号表是空的,这些库也不小啊,如下:
  1. $ nm /usr/lib/libicu*

  2. /usr/lib/libicudata.so.42:
  3. nm: /usr/lib/libicudata.so.42: no symbols

  4. /usr/lib/libicudata.so.42.1:
  5. nm: /usr/lib/libicudata.so.42.1: no symbols

  6. /usr/lib/libicui18n.so.42:
  7. nm: /usr/lib/libicui18n.so.42: no symbols

  8. /usr/lib/libicui18n.so.42.1:
  9. nm: /usr/lib/libicui18n.so.42.1: no symbols

  10. /usr/lib/libicuio.so.42:
  11. nm: /usr/lib/libicuio.so.42: no symbols

  12. /usr/lib/libicuio.so.42.1:
  13. nm: /usr/lib/libicuio.so.42.1: no symbols

  14. /usr/lib/libicule.so.42:
  15. nm: /usr/lib/libicule.so.42: no symbols

  16. /usr/lib/libicule.so.42.1:
  17. nm: /usr/lib/libicule.so.42.1: no symbols

  18. /usr/lib/libiculx.so.42:
  19. nm: /usr/lib/libiculx.so.42: no symbols

  20. /usr/lib/libiculx.so.42.1:
  21. nm: /usr/lib/libiculx.so.42.1: no symbols

  22. /usr/lib/libicutu.so.42:
  23. nm: /usr/lib/libicutu.so.42: no symbols

  24. /usr/lib/libicutu.so.42.1:
  25. nm: /usr/lib/libicutu.so.42.1: no symbols

  26. /usr/lib/libicuuc.so.42:
  27. nm: /usr/lib/libicuuc.so.42: no symbols

  28. /usr/lib/libicuuc.so.42.1:
  29. nm: /usr/lib/libicuuc.so.42.1: no symbols
复制代码
如果默认指定-licuuc库,会链接到这个库,因为符号表是空的,连接完的程序也不能用,这些库是怎么回事呢。

论坛徽章:
0
2 [报告]
发表于 2011-09-05 12:41 |只看该作者
动态库里面的符号表,可以通过strip命令去除,这种情况下,你可以通过readelf来读取符号,如有错误还请指正~

论坛徽章:
0
3 [报告]
发表于 2011-09-05 14:12 |只看该作者
回复 2# hyq5436


   确实通过readelf可以读出符号表,谢谢。另外编译问题,应该是我自身原因导致的,非常感谢。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP