Chinaunix

标题: 究竟库文件能否strip? [打印本页]

作者: coredump007    时间: 2009-03-20 17:20
标题: 究竟库文件能否strip?
各位大虾好~~~ .so动态链接库文件究竟能否strip呢,看到有些大虾说最好不要strip,可是我strip掉了以后一直没什么问题啊,小弟对编译器机制不是很了解,只是在看ELF Specification,还没有找到答案,哪位大虾能详细讲讲原因,小弟先行谢过了。
作者: xuxingyu    时间: 2009-03-20 17:31
没有磁盘空间了吗
作者: xinglp    时间: 2009-03-20 17:40
strip之后就找不到连接符号了,不过好像有参数可以控制。
作者: prolj    时间: 2009-03-20 17:41
你看的 ELF 文档里面没有讲符号表? strip 是干什么的?
这和编译没关系, binutils 的一个工具,操作二进制的
作者: gz80    时间: 2009-03-20 18:01
strip只是不方便调试而已,问题不大
作者: xinglp    时间: 2009-03-20 18:10
原帖由 gz80 于 2009-3-20 18:01 发表
strip只是不方便调试而已,问题不大

麻烦你到生产服务器上 strip /lib/*.so
作者: MMMIX    时间: 2009-03-20 18:28
原帖由 xinglp 于 2009-3-20 18:10 发表

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

file /lib/*.so 看看结果。当然,不排除 file 搞错了。。。
作者: xinglp    时间: 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 编辑 ]
作者: MMMIX    时间: 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

作者: prolj    时间: 2009-03-20 21:08
原帖由 xinglp 于 2009-3-20 18:45 发表
strip /lib/*.so 没有问题,
但是 strip /lib/* 就出错了,再启动的时候显示

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




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2