首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ldd命令在任意位置搜索库

ldd命令在任意位置搜索库
EN

Stack Overflow用户
提问于 2010-10-05 22:55:16
回答 3查看 1.1K关注 0票数 0

我在可执行文件上运行truss命令,得到以下输出:

stat64("/net/xyzmachine/vol/tools/solx64/studio11/SUNWspro/lib/rw7/librt.so.1",0x080474A0) (休眠...)stat64("/net/xyzmachine/vol/tools/solx64/studio11/SUNWspro/lib/rw7/librt.so.1",0x080474A0) Err#2环境stat64("/net/xyzmachine/vol/tools/solx64/studio11/SUNWspro/lib/librt.so.1",0x080474A0) (休眠...)

我查看了buildhost的构建日志和环境,但是LD_LIB_PATH、LIBPATH、LD_RUN_PATH值没有指向这个位置。我不能得到这个值的来源?

有人能帮助我理解这一点吗?库的搜索路径是如何决定的?如何解决同样的问题?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-10-06 21:03:42

谢谢你们的帮助。我找到问题了。有人已经删除了/opt/studio11目录,并建立了到/net/xyzmachine/vol/tools/solx64/studio11链接。因此在编译过程中,它将我显示为/opt/studio11/....但在map文件中,它保留了"net/xyzmachine/vol/tools/solx64/studio11“的值。

再次感谢您的帮助。

票数 0
EN

Stack Overflow用户

发布于 2010-10-05 23:06:21

也许这个库依赖于你的应用程序的一些依赖项。ldd递归地打印您的应用程序或其依赖项所依赖的所有共享库。

它在/etc/ld.so.conf (/etc/ld.so.conf.d/)或LD_LIBRARY_PATH中描述的路径中搜索库。

请注意,还可以在共享库本身中设置rpath

更多信息请点击此处:Program-Library-HOWTO

票数 1
EN

Stack Overflow用户

发布于 2010-10-05 23:07:41

用于创建可执行文件的链接器可能已将某些路径直接硬编码到可执行文件中。大多数链接器在缺省情况下都会这样做,并允许在命令行上指定选项,以添加特定的附加路径来查找.so库。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3864882

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档