Ich möchte einige C ++ - Funktionen verwenden, die nur in neueren Versionen der Sprache verfügbar sind. Das Problem ist, dass Ubuntu 15.04 (Vivid Vervet) 4.9.2 installiert hat und sich die Ausgabe von apt-get install gcc ansieht :
Reading package lists... Done
Building dependency tree
Reading state information... Done
gcc is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 3 not upgraded.
2 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n]
Es heißt, es ist bereits die neueste Version. Ich verstehe nicht warum ...
Antworten:
Die einzige Möglichkeit besteht darin, es aus Quellen zu erstellen , da Sie die Vivid-Version (15.04) ausführen, die EOL (End Of Life) erreicht hat.
Laden Sie den Quellcode und seine Voraussetzungen herunter:
Kompilieren Sie die Quellen (Anmerkung: dieser Befehl unterscheiden sich je nachdem , wo Sie zunächst das .bz2 Archiv gespeichert), können Sie auch ändern Option für
build
Befehl. In diesem Fall verwenden wir eine sehr einfache Option:HINWEIS : Stellen Sie sicher, dass Sie die Dokumente gelesen haben, um die verfügbaren Optionen anzuzeigen.
Jetzt sind wir bereit, gcc zu bauen
Führen Sie den
make
Befehl aus, um gcc zu erstellen. Diese Schritte dauern lange.Sobald die obige Phase abgeschlossen ist, können Sie installieren gebaut mit gcc:
Führen Sie
gcc --version
nach Abschluss dieses Vorgangs den Befehl aus , um zu überprüfen, ob die Installation erfolgreich abgeschlossen wurde.quelle
-v
stehen für-verbose
. Weitere Informationen beziehen sich auf das, was ausführlich ist~/gcc-6.3.0
, zu~/gcc-build
oder zu einem anderen Ordner? Sollte keiner der erstellten Ordner nach dem Ausführen dieser Befehle entfernt werden oder sind sie alle noch erforderlich?tar xzvf gcc-6.3.0.tar.bz2
druckt nurgzip: stdin: not in gzip format
;tar: Child returned status 1
;;tar: Error is not recoverable: exiting now
Also habe ich das Archiv mit dem Archivmanager entpackt.../gcc-6.3.0/configure -v --prefix=$HOME/gcc-6.3.0
, komme ich/usr/bin/ld: cannot find crt1.o: No such file or directory
,/usr/bin/ld: cannot find crti.o: No such file or directory
,/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.8/libgcc.a when searching for -lgcc
,/usr/bin/ld: cannot find -lgcc
und ähnliche Fehler.Ubuntu 15.04 hat das Ende seiner Lebensdauer erreicht und wird nicht mehr unterstützt. Dies bedeutet, dass keine Updates oder Korrekturen (Sicherheit, Fehler oder Funktionen) mehr veröffentlicht werden.
Sie sollten mit einer neueren Ubuntu-Version aktualisieren oder neu installieren.
Ich empfehle 16.10 (9-monatiger Support), der bereits einen gcc 6.x-Zweig auf offiziellen Repos hat.
Sie können aber auch mit 16.04 LTS (5 Jahre Support) einen nicht vertrauenswürdigen / nicht garantierten ppa hinzufügen , um die neuesten gcc-Versionen wie diese zu erhalten
Persönlich würde ich mich für 16.10 entscheiden und weiterhin von offiziellen Kanälen auf spätere Software- / Ubuntu-Versionen aktualisieren, ohne (meistens) ppa hinzuzufügen .
quelle