so共享库与ldd的简单问题(我不会)

zhengren 2006-10-11 05:15:23
各位大侠,鄙人近日遇到一个问题

背景:
(1)、有两台机器,硬件和软件不大一样,均安装了Linux操作系统(假设为A,B)。
(2)、在A机器上开发了一个项目P,项目包含一系列的so共享库文件。
(3)、现需要将P移植到B机器上去。
(4)、将P生成的所有so共享库拷贝到B机器上,路径与A机器一样。
(5)、项目P在A机器上能正常运行,但移植到B机器后就罢工了。

现象:
(1)、在项目P生成的所有so库里,有一个so库(设名字为lib.so),在B机器上无论如何也加载不上,运行ldconfig也无效,在/etc/ld.so.cache文件里就是看不到它的影子,而同目录下的其他库均在文件里有记录。
(2)、用ldd工具来观察,没想到连ldd都用不了,每次运行"ldd -v lib.so"均提示
“ldd: /lib/ld-linux.so.2 exited with unknown exit code (139)”。

鄙人在此跪等了,请各位高手多多指点,多多发表意见。如果分值太少就说,我倾所有分而求解。
...全文
533 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhengren 2006-10-12
  • 打赏
  • 举报
回复
非常感谢各位的热情帮助,现在问题解决了,确实依赖库不全。
kangji 2006-10-12
  • 打赏
  • 举报
回复
目前怀疑是lib.so依赖的库不齐全
---------------------------
我也觉得是这个问题,不妨检查一下你那个so需要链接哪些系统库,然后核对一下A和B的系统库版本
碧空星尘 2006-10-11
  • 打赏
  • 举报
回复
操作系统有区别么?如果gcc版本差别较大,比如一个是3.2.2,一个是3.4,so文件是没有办法通用的吧.主要是libstdc++的动态库版本不一样.
还有一个原因是应用程序没有so共享库,可以设置 LD_LIBRARY_PATH环境变量.
zhengren 2006-10-11
  • 打赏
  • 举报
回复
这招用过了,还不行。目前怀疑是lib.so依赖的库不齐全,但ldd又不能用。
不过还是感谢你的指点。
fytzzh 2006-10-11
  • 打赏
  • 举报
回复
把lib.so的路径加在/etc/ld.so.conf里.然后运行/sbin/ldconfig

23,121

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧