GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Finden Sie heraus, ob sich die Bibliothek im Pfad befindet

ldconfig kann alle Bibliotheken auflisten, auf die es Zugriff hat. Diese Bibliotheken werden auch in seinem Cache gespeichert.

/sbin/ldconfig -v -N durchsucht alle üblichen Bibliothekspfade und listet alle verfügbaren Bibliotheken auf, ohne den Cache neu zu erstellen (was nicht möglich ist, wenn Sie kein Root-Benutzer sind). Bibliotheken in LD_LIBRARY_PATH werden NICHT berücksichtigt (im Gegensatz zu dem, was dieser Beitrag vor der Bearbeitung gesagt hat), aber Sie können zusätzliche Bibliotheken an die Befehlszeile übergeben, indem Sie die folgende Zeile verwenden:

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

Sie können mit gcc ein einfaches Testprogramm kompilieren und Ihre Bibliothek einbinden. Dann können Sie die verwendeten Bibliotheken mit ldd überprüfen. Ich benutze so etwas:

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

-Wl,--no-as-needed verhindert, dass der Linker die Bibliothek verwirft, da keine Symbole aus der Bibliothek verwendet werden.


Ersetzen Sie global (Leerzeichen) für : mit LD_LIBRARY_PATH

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

Linux
  1. Ein Leitfaden zum Verständnis von Linux-Softwarebibliotheken in C

  2. So finden Sie heraus, welche ausführbaren Dateien der dynamischen Bibliotheken beim Ausführen geladen werden

  3. Brechen Sie von Find ab, wenn ein -exec fehlschlägt?

  4. Finden Sie den Pfad heraus, in dem ein Paket installiert ist – CentOS

  5. Wie finde ich heraus, welche Symbole alle aus einem gemeinsam genutzten Objekt exportiert werden?

Bibliothekspfad beim dynamischen Laden?

Wie erkennt und findet man heraus, dass sich ein Programm im Deadlock befindet?

libcrypto-Bibliotheksfehler kann nicht gefunden werden

Gibt md5sum der Ergebnisse eines Find-Befehls in Linux aus

Beim Installieren von Qt unter Linux kann -lGL nicht gefunden werden

Wie finde ich den Pfad HADOOP_HOME unter Linux?