
Ich habe eine neue Version von gcc
auf meinem Linux (Ubuntu)-Rechner erstellt und installiert und sie in installiert /opt/gcc-10.2.0
.
Dann habe ich update-alternatives
dies zum Standard gemacht gcc
/ g++
.
Es funktioniert, allerdings gcc
verknüpfen mit der neuen Version erstellte Programme noch immer mit der alten libstdc++
Version /usr/lib/x86_64-linux-gnu
und nicht mit der Version in /opt/gcc-10.2.0/lib64
.
Dies ist ein Problem, wenn das System libstdc++
die ABI vor C++11 verwendet, da dies dazu führt, dass die Anwendung beim Start abstürzt.
Gibt es eine Möglichkeit, eine neuere Version von GCC zu installieren und sie zum „Standardcompiler“ für den Benutzer zu machen und außerdem sicherzustellen, dass die damit erstellten Programme mit dem libstc++
(und dem libgcc
) mit diesem Compiler gebündelten Compiler verknüpft werden?
Ich frage das, weil ich einen Build-Server erstellen möchte, der die neueste GCC-Version verwendet.
Antwort1
- Das ist eigentlich gut, da Ihre kompilierten Programme portabler werden.
- Sie könnten versuchen,
-L/opt/gcc-10.2.0/lib64
Ihren Kompilierungen Flags hinzuzufügen. - Das könnten Sie
sudo mkdir /usr/lib64/save; sudo mv -iv /usr/lib64/libstdc++* /usr/lib64/save
– dies wird nicht empfohlen.