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

/usr/lib/x86_64-linux-gnu/libstdc++.so.6:Version CXXABI_1.3.8' nicht gefunden

Fügen Sie den Pfad der Bibliothek zu LD_LIBRARY_PATH hinzu Umgebungsvariable

TL;DR

GCC verlangt, dass Sie ihm manuell mitteilen, wo sich Ihre Bibliothek befindet, wenn es die richtige Version nicht finden kann, was auf verschiedene Arten geschehen kann. Man fügt es dem LD_LIBRARY_PATH hinzu .

export LD_LIBRARY_PATH="/usr/local/lib64/:$LD_LIBRARY_PATH"

Für einige ist der Bibliothekspfad /usr/local/lib64/ . Andere haben den Bibliothekspfad /usr/lib/x86_64-linux-gnu/ gemeldet stattdessen für sie arbeiten.

Warum müssen wir die Bibliothek zu LD_LIBRARY_PATH hinzufügen ?

Wenn Sie GCC kompilieren und installieren, legt es die Bibliotheken in eines dieser Verzeichnisse, aber das ist alles, was es tut. Gemäß den FAQs für libstdc++ , bedeutet der Fehler, den wir erhalten haben, dass der dynamische Linker die falsche Version von libstdc++ gefunden hat gemeinsame Bibliothek. Da der Linker die richtige Version nicht finden kann, müssen wir ihm mitteilen, wo der libstdc++ zu finden ist Bibliothek.

Der einfachste Weg, dies zu beheben, besteht darin, die Umgebungsvariable LD_LIBRARY_PATH zu verwenden, bei der es sich um eine durch Doppelpunkte getrennte Liste von Verzeichnissen handelt, in denen der Linker nach gemeinsam genutzten Bibliotheken sucht.

Es gibt auch andere Möglichkeiten, dieses Problem zu beheben. Diese und die anderen kurz erwähnten Lösungen finden Sie bei der Installation von gcc wenn Sie die Ausgabe von make lesen:

Bibliotheken wurden installiert in:

/usr/local/lib/../lib32

Wenn Sie jemals mit installierten Bibliotheken in einem bestimmten Verzeichnis, LIBDIR, linken möchten, müssen Sie entweder libtool verwenden und den vollständigen Pfadnamen der Bibliothek angeben oder während des Linkens das `-LLIBDIR'-Flag verwenden und mindestens einen der folgenden Schritte ausführen Folgendes:

  • LIBDIR während der Ausführung zur Umgebungsvariable `LD_LIBRARY_PATH' hinzufügen
  • LIBDIR während des Linkens zur Umgebungsvariable `LD_RUN_PATH' hinzufügen
  • benutze das Linker-Flag `-Wl,-rpath -Wl,LIBDIR'
  • Lassen Sie Ihren Systemadministrator LIBDIR zu `/etc/ld.so.conf' hinzufügen

Weitere Informationen finden Sie in der Dokumentation des Betriebssystems zu gemeinsam genutzten Bibliotheken, wie z. B. in den Manpages zu ld(1) und ld.so(8).

Grr, das war einfach! Auch, "wenn Sie jemals zufällig gegen die installierten Bibliotheken verlinken wollen", im Ernst?


Ich hatte das gleiche Problem auf meinem Ubuntu 14.04, als ich versuchte, TopTracker zu installieren. Ich habe solche Fehler:

/usr/share/toptracker/bin/TopTracker:/usr/lib/x86_64-linux-gnu/libstdc++.so.6:Version 'CXXABI_1.3.8' nicht gefunden (erforderlich für /usr/share/toptracker/bin/TopTracker)/ usr/share/toptracker/bin/TopTracker:/usr/lib/x86_64-linux-gnu/libstdc++.so.6:Version „GLIBCXX_3.4.21“ nicht gefunden (erforderlich für /usr/share/toptracker/bin/TopTracker)/usr /share/toptracker/bin/TopTracker:/usr/lib/x86_64-linux-gnu/libstdc++.so.6:Version 'CXXABI_1.3.9' nicht gefunden (erforderlich für /usr/share/toptracker/bin/TopTracker)

Aber ich habe dann gcc Version 4.9 installiert und das Problem ist weg:

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-4.9 g++-4.9

Linux
  1. /usr/bin vs. /usr/local/bin Unter Linux?

  2. Linux – Zusammenführen von /usr/bin und /usr/sbin in /bin (gnu/linux)?

  3. Warum funktionieren auf Ubuntu 14.04 erstellte Webp-Dienstprogramme nicht und zeigen einen Bibliotheksfehler an?

  4. Was bedeuten /usr/sbin, /usr/local/sbin und /usr/local/bin?

  5. keine Versionsinformationen verfügbar (wird von /usr/bin/ssh benötigt)

Linux – /sbin/init existiert nicht?

cmake --version zeigt auf /usr/bin/cmake, während cmake auf /usr/local/bin zeigt

Wann sollte ich /dev/shm/ verwenden und wann sollte ich /tmp/?

Arch auf WSL:libQt5Core.so.5 nicht gefunden, obwohl installiert

Warum andere Dinge als /home auf eine separate Partition legen?

Unterschied zwischen /bin und /usr/bin