Wie konfiguriere ich libstdc ++ mit GCC 4.8?

Vor einiger Zeit habe ich mich für ein Upgrade auf GCC 4.8 entschieden, um einen frühen Einstieg in einige c ++ 11-Funktionen zu erhalten. Ich habe mich jedoch ein wenig abgelenkt und habe erst vor ein paar Tagen wirklich irgendwelche neuen Funktionen für ein Projekt verwendet (der neue Compiler schien einwandfrei zu funktionieren, aber es könnte auch nur daran liegen, dass ich nicht verwendet habe jede neue Funktionalität.)

Als ich in diesem neuen Projekt mit dem Flag = std = c ++ 11 kompilierte, hatte ich keine Probleme. Zur Laufzeit erhalte ich jedoch den Fehler:

./main: /usr/lib/i386-linux-gnu/libstdc++.so.6: versionGLIBCXX_3.4.18 'nicht gefunden (benötigt von ./main)'

Ich gehe davon aus, dass es ein Problem mit der Verknüpfung zu einer moderneren libstdc ++ - Bibliothek gibt, die mit GCC 4.8 verbunden ist, aber ich kann für mein ganzes Leben nicht herausfinden, wie dies behoben werden kann oder wo sich die entsprechende Bibliothek befinden sollte. Ich erinnere mich, wie ich die Binärdateien g ++ und gcc symbolisch mit gcc-4.8 verknüpft habe, was seitdem zu funktionieren scheintg++ -v kehrt zurück:

Using built-in specs. COLLECT_GCC=g++ COLLECT_LTO_WRAPPER=/app/gcc/4.8.0/libexec/gcc/i686-pc-linux-gnu/4.8.0/lto-wrapper Target: i686-pc-linux-gnu Configured with: ./gcc-4.8.0/configure --prefix=/app/gcc/4.8.0 Thread model: posix gcc version 4.8.0 (GCC)

Ein anderer Thread im Internet hat mich dazu veranlasst, mir das anzuschauenldd Ausgabe für das Programm, dastat Zeigen Sie mir, dass sich die Verzeichnisstruktur für die verknüpften libstdc ++ - Bibliotheken von der Verzeichnisstruktur für die Binärdateien unterschied. Ich konnte jedoch nicht das passende findenlibstdc++ Bibliotheken in letzteren, also bin ich mir nicht sicher, wo ich suchen soll. Die Ausgabe fürldd main ist:

./main: /usr/lib/i386-linux-gnu/libstdc++.so.6: versionGLIBCXX_3.4.18 'not found (erforderlich für ./main) linux-gate.so.1 => (0xb7791000) libstdc ++. So.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xb768e000) ) libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xb7662000) libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xb7644000) libc .so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb749b000) /lib/ld-linux.so.2 (0xb7792000) `

Ich bin mir nicht sicher, wo genau das schief geht, und ich werde weiter googeln und nach Antworten suchen, aber jede Hilfe, die ihr anbieten könnt, wäre sehr dankbar. Wenn irgendetwas unklar ist oder ich Informationen vergessen habe, lass es mich einfach wissen und ich werde versuchen, das hinzuzufügen. Vielen Dank!

Antworten auf die Frage(1)

Ihre Antwort auf die Frage