ldd 可执行文件如何找到 /usr/lib64/libstdc++.so.6?
Posted
技术标签:
【中文标题】ldd 可执行文件如何找到 /usr/lib64/libstdc++.so.6?【英文标题】:How ldd executable finds /usr/lib64/libstdc++.so.6? 【发布时间】:2014-06-19 02:31:28 【问题描述】:当我跑步时
ldd ./myprogram
它显示:
...
libstdc++.so.6 => /usr/lib64/stdc++.so.6
libm.so.6 => /lib64/libm.so.6
...
/usr/lib64 不在我的 LD_LIBRARY_PATH 中,它如何找到 /usr/lib64?当我链接“myprgrom”时,它正在链接来自 $HOME/mynewgcc/.../lib64 的库。
【问题讨论】:
看/etc/ld.so.conf.d
@Brian:感谢您的回复。我已经检查过了:cat ld.so.conf 显示“include ld.so.conf.d/*.conf”。该目录下的 'cat' *.conf 显示: /usr/lib64/atlas hwcap 1 nosegneg hwcap 1 nosegneg /usr/local/lib /usr/lib64/mysql /usr/lib64/R/lib /usr/lib64/xulrunner don '看不到 /usr/lib64
【参考方案1】:
ldconfig
程序为ld.so
(由ldd
调用)或ld-linux.so
构建缓存。 /etc/ld.so.conf
和 /etc/ld.so.conf.d
中的共享对象被添加到此缓存中。这些路径被缓存以允许更快的查找(而不是查看文件系统中的任意位置,如LD_LIBRARY_PATH
)。 ldconfig
也有某些默认值,即 /lib
、/lib64
、/usr/lib
和 /usr/lib64
(“受信任”目录)被添加到配置文件中的目录中(除非 ldconfig -n
已指定)。
【讨论】:
请看我上面对布赖恩的评论。我在这些 conf 文件中看不到 /usr/lib64。我缺少的任何东西 我刚刚添加了关于受信任目录的说明。以上是关于ldd 可执行文件如何找到 /usr/lib64/libstdc++.so.6?的主要内容,如果未能解决你的问题,请参考以下文章
/usr/lib64/python2.6/site-packages/pycurl.so: undefined symbol: CRYPTO_set_locking_callback
/usr/lib64/python2.6/site-packages/pycurl.so: undefined symbol: CRYPTO_set_locking_callback