当我跑步时
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的库。
答案 0 :(得分: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
)。