免费注册 查看新帖 |

Chinaunix

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

[C] 究竟库文件能否strip? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-03-20 17:20 |只看该作者 |正序浏览
各位大虾好~~~ .so动态链接库文件究竟能否strip呢,看到有些大虾说最好不要strip,可是我strip掉了以后一直没什么问题啊,小弟对编译器机制不是很了解,只是在看ELF Specification,还没有找到答案,哪位大虾能详细讲讲原因,小弟先行谢过了。

论坛徽章:
0
10 [报告]
发表于 2009-03-20 21:08 |只看该作者
原帖由 xinglp 于 2009-3-20 18:45 发表
strip /lib/*.so 没有问题,
但是 strip /lib/* 就出错了,再启动的时候显示

我的 /lib/ 下面除了 so 还有别的

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
9 [报告]
发表于 2009-03-20 20:53 |只看该作者
原帖由 xinglp 于 2009-3-20 18:45 发表


file /lib/*.so
ld-2.5.1.so:              ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), not stripped
libanl-2.5.1.so:          ELF 32-bit LSB shared object, Intel 80386, versi ...
lee@debian:~$ file /lib/*.so
/lib/klibc--IOwh0VR87LX1LY95rmnFLc1vuY.so: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, stripped
/lib/ld-2.7.so:                            ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, stripped
/lib/libanl-2.7.so:                        ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.8, stripped
/lib/libBrokenLocale-2.7.so:               ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.8, stripped
/lib/libc-2.7.so:                          ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.8, stripped
/lib/libcidn-2.7.so:                       ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.8, stripped
/lib/libcrypt-2.7.so:                      ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.8, stripped

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:53:172015亚冠之水原三星
日期:2015-06-02 16:34:202015年亚冠纪念徽章
日期:2015-10-19 18:13:37程序设计版块每日发帖之星
日期:2015-11-08 06:20:00
8 [报告]
发表于 2009-03-20 18:45 |只看该作者
原帖由 MMMIX 于 2009-3-20 18:28 发表
file /lib/*.so 看看结果。当然,不排除 file 搞错了。。。


file /lib/*.so
  1. ld-2.5.1.so:              ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), not stripped
  2. libanl-2.5.1.so:          ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.0, not stripped
  3. libBrokenLocale-2.5.1.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.0, not stripped
  4. libc-2.5.1.so:            ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.0, not stripped
  5. libcidn-2.5.1.so:         ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.0, not stripped
  6. libcrypt-2.5.1.so:        ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.0, not stripped
  7. libdl-2.5.1.so:           ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.0, not stripped
复制代码


strip /lib/*.so 没有问题,
但是 strip /lib/* 就出错了,再启动的时候显示


[ 本帖最后由 xinglp 于 2009-3-20 18:54 编辑 ]

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
7 [报告]
发表于 2009-03-20 18:28 |只看该作者
原帖由 xinglp 于 2009-3-20 18:10 发表

麻烦你到生产服务器上 strip /lib/*.so

file /lib/*.so 看看结果。当然,不排除 file 搞错了。。。

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:53:172015亚冠之水原三星
日期:2015-06-02 16:34:202015年亚冠纪念徽章
日期:2015-10-19 18:13:37程序设计版块每日发帖之星
日期:2015-11-08 06:20:00
6 [报告]
发表于 2009-03-20 18:10 |只看该作者
原帖由 gz80 于 2009-3-20 18:01 发表
strip只是不方便调试而已,问题不大

麻烦你到生产服务器上 strip /lib/*.so

论坛徽章:
0
5 [报告]
发表于 2009-03-20 18:01 |只看该作者
strip只是不方便调试而已,问题不大

论坛徽章:
0
4 [报告]
发表于 2009-03-20 17:41 |只看该作者
你看的 ELF 文档里面没有讲符号表? strip 是干什么的?
这和编译没关系, binutils 的一个工具,操作二进制的

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:53:172015亚冠之水原三星
日期:2015-06-02 16:34:202015年亚冠纪念徽章
日期:2015-10-19 18:13:37程序设计版块每日发帖之星
日期:2015-11-08 06:20:00
3 [报告]
发表于 2009-03-20 17:40 |只看该作者
strip之后就找不到连接符号了,不过好像有参数可以控制。

论坛徽章:
0
2 [报告]
发表于 2009-03-20 17:31 |只看该作者
没有磁盘空间了吗
  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP