x86_64 - usr lib vmware mediaprovider gcc libstdc++ so 6 version cxxabi_1 3.8 not found




Wie zu beheben:[Programmname]/usr/lib/x86_64-linux-gnu/libstdc++.so.6: Version CXXABI_1.3.8 'nicht gefunden(erforderlich von[Programmname]) (6)

Diese Lösung funktioniert auf meinem Fall Ich benutze Ubuntu 16.04, VirtualBox 2.7.2 und Genymotion 2.7.2 Der gleiche Fehler kommt in meinem System Ich habe einfachen Schritt gefolgt und mein Problem wurde gelöst

1. $ LD_LIBRARY_PATH=/usr/local/lib64/:$LD_LIBRARY_PATH
2. $ export LD_LIBRARY_PATH
3. $ sudo apt-add-repository ppa:ubuntu-toolchain-r/test
4. $ sudo apt-get update
5. $ sudo apt-get install gcc-4.9 g++-4.9

Ich hoffe, das wird für dich funktionieren

Ich habe vor kurzem um Hilfe gebeten https://stackoverflow.com/questions/20253515/no-idea-as-to-usr-lib-x86-64-linux-gnu-libstdc-so-6-version-cxxabi-1-3-8 und es wurde downvoted und geschlossen (ich weiß nicht warum)

Es stellt sich heraus, dass "make install" - das make-Ziel, das das Ziel "install-target-libstdc ++ v3" installiert und impliziert, nicht wirklich bedeutet, dass Sie bereit sind zu gehen.

Ich habe mich für eine Weile festgefressen und mich gefragt, was ich falsch mache, weil ich angenommen habe, dass ein solches Ziel das für mich tun würde.

Ich hoffe, diese Antwort hilft mindestens einer anderen Person.


Führen Sie für alle, die mit einem ähnlichen Problem behaftet sind, Folgendes aus:

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

Wenn Sie GCC kompilieren und installieren, werden die Bibliotheken hier abgelegt, aber das war's. Wie die FAQs sagen ( http://gcc.gnu.org/onlinedocs/libstdc++/faq.html#faq.how_to_set_paths ), müssen Sie es hinzufügen.

Ich habe angenommen "Wie stelle ich sicher, dass die dynamisch verknüpfte Bibliothek gefunden wird?" Bedeutet "Wie stelle ich sicher, dass es immer gefunden wird" nicht "Es wird nicht gefunden, Sie müssen das tun"

Für diejenigen, die kein Präfix setzen, ist es / usr / local / lib64

Sie können dies kurz bei der Installation von gcc finden, wenn Sie die make-Ausgabe lesen:

Libraries have been installed in:
   /usr/local/lib/../lib32
If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
   - add LIBDIR to the `LD_LIBRARY_PATH' environment variable
     during execution
   - add LIBDIR to the `LD_RUN_PATH' environment variable
     during linking
   - use the `-Wl,-rpath -Wl,LIBDIR' linker flag
   - have your system administrator add LIBDIR to `/etc/ld.so.conf'

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages. 

Grr das war einfach! Auch "wenn Sie jemals gegen die installierten Bibliotheken verlinken wollen" - ernsthaft?


Ich habe hier die richtige Lösung.

Die beste Methode, gcc-4.9 korrekt zu installieren und als Standard-GCC-Version zu verwenden, ist:

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-4.9 g++-4.9
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.9

Der --Slave mit g ++ wird bewirken, dass g ++ mit gcc in dieselbe Version geschaltet wird. Aber zu diesem Zeitpunkt wird gcc-4.9 die einzige Version sein, die in update-alternatives konfiguriert ist, also füge 4.8 zu update-alternatives hinzu, also gibt es tatsächlich eine Alternative, indem du folgendes verwendest:

sudo apt-get install gcc-4.8 g++-4.8
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.8

Dann können Sie prüfen, welche eingestellt ist, und wechseln Sie hin und her mit:

sudo update-alternatives --config gcc

HINWEIS: Sie könnten die Installation des PPA-Repositorys überspringen und einfach /usr/bin/gcc-4.9-base verwenden, aber ich bevorzuge die Verwendung der aktualisierten Toolchains.


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 von / 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 von / 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 von / usr / share / toptracker / bin / TopTracker)

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

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

Was die anderen Antworten vorschlagen, wird für das fragliche Programm funktionieren, aber es hat das Potential, in anderen Programmen und anderen unbekannten Abhängigkeiten Brüche zu verursachen. Es ist besser, ein kleines Wrapper-Skript zu erstellen:

#!/bin/sh
export LD_LIBRARY_PATH=/usr/local/lib64:$LD_LIBRARY_PATH
program_needing_different_run_time_library_path

Dadurch wird das in xahlee.info/UnixResource_dir/_/ldpath.html beschriebene Problem größtenteils vermieden, indem die Effekte auf das Programm beschränkt werden, das sie benötigt.

Beachten Sie, dass LD_RUN_PATH trotz der Namen bei Link-Zeit arbeitet und nicht bösartig ist, während LD_LIBRARY_PATH sowohl bei Link- als auch bei Laufzeit funktioniert (und böse ist :).








unix