2

Что вы можете сделать, если ваша система linux «не может найти» динамически связанные библиотеки, которые действительно установлены в правильных местах?

Например, я пытаюсь запустить программу под названием «ucanvcam»:

oliver@human ~/installed/ucanvcam-0.1.6/bin $ ./ucanvcam
./ucanvcam: error while loading shared libraries: libgd.so.2: cannot open shared object file: No such file or directory

oliver@human ~/installed/ucanvcam-0.1.6/bin $ locate libgd.so.2
/usr/lib64/libgd.so.2.0.0
/usr/lib64/libgd.so.2

oliver@human ~/installed/ucanvcam-0.1.6/bin $ ldd ./ucanvcam
    linux-gate.so.1 =>  (0xf7706000)
    [...]
    libgd.so.2 => not found
    [...]
    librt.so.1 => /lib32/librt.so.1 (0xf6b1e000)

Как я могу сказать ему искать libgd.so.2 в /usr /lib64? И что более важно, почему он не смотрит туда и куда он смотрит?

Спасибо,
скуловая кость

1 ответ1

1

Страница руководства для ld.so поможет вам в этом. В частности, важно обратить внимание на содержимое вашей переменной оболочки LD_LIBRARY_PATH и файл /etc/ld.so.conf .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .