se le tue librerie non si trovano sul percorso standard, devi aggiungerle al percorso o aggiungere un percorso non standard a LD_LIBRARY_PATH
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:<Your_non-Standard_path>
Dopo aver eseguito una delle operazioni precedenti, è necessario aggiornare l'associazione di runtime del linker dinamico eseguendo il comando seguente:
sudo ldconfig
AGGIORNAMENTO:
Puoi rendere permanenti le modifiche scrivendo export
sopra line in uno dei tuoi file di avvio (ad es. ~/.bashrc) OPPURE se la libreria sottostante non è in conflitto con nessun'altra libreria, inseriscila in uno dei percorsi di libreria standard (ad es. /lib,/usr/lib)
LD_LIBRARY_PATH
è adatto per test brevi, ma poiché esiste una sola variabile , è scomodo da usare quando potresti avere più applicazioni con librerie personalizzate.
Il modo usuale per Debian/Ubuntu è di aggiungerlo alla configurazione del caricatore, ad esempio un file sotto
/etc/ld.so.conf.d
contenente la directory in cui desideri che il caricatore esegua la ricerca, ad es.
/usr/local/libcsfml
Ulteriori letture:
- ldconfig - configura le associazioni di runtime del linker dinamico
- ld.so, ld-linux.so* - linker/loader dinamico
- Perché LD_LIBRARY_PATH è dannoso
Sembra che il binario in questione sia stato compilato da te.
Quindi sei responsabile del problema che alcune librerie non possono essere trovate.
Nel caso in cui queste librerie siano disponibili sul tuo sistema, sembrano trovarsi in percorsi di directory non standard.
Usa -R directory
per la chiamata finale del compilatore per comunicare al linker directory
dove si trovano le biblioteche. Più di un singolo -R directory
opzione è possibile.
Nota che quando usi gcc
, potrebbe essere necessario utilizzare -Wl,-R
invece di -R
.