Version `GLIBCXX_3.4.15 'wurde in CentOS nicht gefunden (in der Datei /usr/lib/libstdc++.so.6)

16188
George Kastrinis

Ich versuche ein Programm zu verwenden und erhalte folgende Fehlermeldung.

/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found 

Unter / usr / lib64 ist libstdc ++ libstdc ++. So.6.0.13 (und ein Softlink).

Mit strings libstdc++.so.6.0.13 | grep GLIBCXXbekomme ich

GLIBCXX_3.4 GLIBCXX_3.4.1 GLIBCXX_3.4.2 GLIBCXX_3.4.3 GLIBCXX_3.4.4 GLIBCXX_3.4.5 GLIBCXX_3.4.6 GLIBCXX_3.4.7 GLIBCXX_3.4.8 GLIBCXX_3.4.9 GLIBCXX_3.4.10 GLIBCXX_3.4.11 GLIBCXX_3.4.12 GLIBCXX_3.4.13 GLIBCXX_FORCE_NEW GLIBCXX_DEBUG_MESSAGE_LENGTH 

Mit cat /etc/redhat-releasebekomme ich

Red Hat Enterprise Linux Workstation release 6.4 (Santiago) 

Also die Frage, was soll ich tun, um das zu beheben. Sollte ich einige neue Pakete installieren und wenn ja welche?

2
Ich habe nicht nach ihnen gesucht, aber sie haben EPEL ausprobiert Zan Lynx vor 9 Jahren 0

2 Antworten auf die Frage

0

Sie müssen eine neuere Version von GCC und, falls es sich um ein separates Paket in CentOS handelt, eine neuere Version von gcc-libs installieren. Leider glaube ich nicht, dass diese neuen Versionen im CentOS-Repository verfügbar sein werden.

Eine Option wäre, die neueste Version von GCC nur für Ihr Benutzerkonto zu installieren (dh, es sollte nicht systemweit installiert werden, um potenzielle Probleme zu vermeiden). Mit GSRC ist dies ziemlich einfach möglich, aber Sie können natürlich auch das GCC- Quellarchiv herunterladen und ein nicht standardmäßiges Verzeichnis für die --prefixOption angeben . Dann, wenn Sie Ihre neue Software zu bauen, müssen Sie angeben müssen LDFLAGS="-L /path/to/your/gcc/libs -L/usr/lib (etc)", CFLAGS="-I /path/to/your/gcc/includes -I /usr/include (etc)"und wahrscheinlich so etwas wie CXX=/path/to/your/g++. Wenn Sie das Programm ausführen, benötigen Sie es LD_LIBRARY_PATH=/path/to/your/gcc/libsin Ihrer Umgebung.

Alternativ können Sie eine Distribution mit einer aktuelleren Software installieren, obwohl ich weiß, dass dies nicht immer möglich ist.

0
Chef Pharaoh

Ich hatte das gleiche Problem, also benutzte ich diesen Link für glibcxx_3.4.15 und legte den Inhalt manuell in den erforderlichen Ordner (Ordner / usr / lib). Danach konnte ich gdb auf meinen Apps ausführen. Hoffe das hilft.

BEARBEITEN: Wählen Sie den Link unter den ALT-Linux-Registerkarten und laden Sie das Binärpaket herunter (diese Pakete sind generischer und können in verschiedenen Distributionen verwendet werden).

Beispiel: libstdc ++ 6-4.7.2-alt7.i586.rpm - GNU-Standard-C ++ - Bibliothek

Dazu gehören libstdc ++. So.6.0.17 sowie libstdc ++. So.6.0.15.

Unsere CentOS-Version ist Red Hat Enterprise Linux Workstation, Version 6.4. Also von Ihrem Link aus hat das Paket bis libstdc ++. So.6 (GLIBCXX_3.4.13) und nicht 3.4.15 George Kastrinis vor 11 Jahren 0
Nun, ich verwende dieselbe Version von CentOS und hatte die gleiche Fehlermeldung. Sie haben es vielleicht nicht bemerkt, aber es kommt mit libstdc ++. So.6.0.17, das die Version enthält, nach der Sie suchen, aber Sie können auch diesen Link versuchen, der die genaue Version [glibcxx_3.4.15] (http://rpmfind.net) hat /linux/rpm2html/search.php?query=libstdc%2B%2B.so.6 (GLIBCXX_3.4.15)) Chef Pharaoh vor 11 Jahren 0