GNU/Linux >> Linux Esercitazione >  >> Linux

Scopri se la libreria è nel percorso

ldconfig può elencare tutte le librerie a cui ha accesso. Queste librerie sono anche memorizzate nella sua cache.

/sbin/ldconfig -v -N eseguirà la scansione di tutti i soliti percorsi di libreria, elencherà tutte le librerie disponibili, senza ricostruire la cache (cosa non possibile se sei un utente non root). NON tiene conto delle librerie in LD_LIBRARY_PATH (contrariamente a quanto detto in questo post prima della modifica) ma puoi passare librerie aggiuntive alla riga di comando utilizzando la riga seguente:

/sbin/ldconfig -N -v $(sed 's/:/ /g' <<< $LD_LIBRARY_PATH)

Puoi compilare un semplice programma di test con gcc e collegare la tua libreria. Quindi puoi controllare le librerie utilizzate con ldd. Uso qualcosa del genere:

echo "int main(){}" | gcc -x c++ -Wl,--no-as-needed -lmylib - && ldd a.out | grep mylib

-Wl,--no-as-needed impedisce al linker di scartare la libreria, poiché non vengono utilizzati simboli della libreria.


Sostituire globalmente (spazio) per : con LD_LIBRARY_PATH

/sbin/ldconfig -N -v $(sed 's/:/ /g' <<< $LD_LIBRARY_PATH)

Linux
  1. Scopri il percorso in cui è installato un pacchetto:CentOS

  2. Scopri i processi orfani di Linux

  3. Come trovo la posizione dell'eseguibile in C?

  4. Come faccio a sapere cosa vengono esportati tutti i simboli da un oggetto condiviso?

  5. percorso della libreria quando viene caricato dinamicamente?

ld non riesce a trovare una libreria esistente

Linux scopre l'ID core hyper-thread

Come rilevare e scoprire che un programma è in stallo?

Installando Qt su Linux, non riesco a trovare -lGL

come trovare il percorso HADOOP_HOME su Linux?

ldd non trova il percorso, come aggiungere