Gestire le posizioni delle biblioteche


2

Cosa puoi fare quando il tuo sistema linux "non trova" librerie collegate dinamicamente che sono effettivamente installate nelle loro posizioni corrette?

Caso in questione, sto cercando di eseguire un programma chiamato '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)

Come posso dirlo per cercare libgd.so.2 in / usr / lib64? E, soprattutto, perché non sta guardando lì, e dove sta guardando?

Grazie
Mala

Risposte:


1

La pagina di manuale per ld.soti aiuterà in questo. In particolare, le cose importanti da guardare sono probabilmente il contenuto della variabile della shell LD_LIBRARY_PATHe il file /etc/ld.so.conf.


Grazie, impostare la mia variabile LD_LIBRARY_PATH ha funzionato molto bene :)
Mala

Alcuni (tra gli altri stackoverflow.com/a/5104803/204658 o google esso) considerano l'impostazione di LD_LIBRARY_PATH una cattiva pratica.
thoni56,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.