как программа узнает, где находятся общие библиотеки, без LD_LIBRARY_PATH

277
user322908

У меня есть программа, foobarкоторая использует общие библиотеки. Я LD_LIBRARY_PATHправильно настроен, а затем, когда я бегу

>ldd foobar 

Я вижу, что он знает полные пути ко всем нужным библиотекам.

Однако, на некоторых системах ( «большие» единиц), мне не нужно LD_LIBRARY_PATHдля lddзнать, где библиотеки, а некоторые из них ( «мелких» из них) я.

В обеих системах исполняемый файл foobarодинаков, путь к нему одинаков, а все библиотеки и пути к ним одинаковы.

Это означает, что rpathвстроенный в исполняемый файл одинаков в обоих случаях.

Таким образом, должен быть какой-то другой способ определить, где находятся библиотеки? Что это?

2

2 ответа на вопрос

0
cmevoli

The /lib and /usr/lib are added automatically. Other libraries are added from the /etc/ld.so.conf file.

0

ldconfig is a utility that maintains a cache of shared libraries. When properly configured, the right library paths will be cached and available to the executives. You can use ldconfig -p to print the currently available library candidates.

See the manpage for ldconfig(8).

Похожие вопросы