Update GCC auf die Version 6.3 [geschlossen]


10

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 ...


1
Ubuntu 15.04 wird nicht mehr unterstützt, vielleicht sollten Sie zu einer neueren Version wechseln. Alte Versionen von Ubuntu verfügen normalerweise nicht über die neuesten Versionen von Paketen. Sie müssen die Distribution aktualisieren oder Ihr Paket von einem ppa installieren oder aus dem Quellcode erstellen.
Raziman TV

Antworten:


10

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.

  1. Laden Sie den Quellcode und seine Voraussetzungen herunter:

    wget https://ftp.gnu.org/gnu/gcc/gcc-6.3.0/gcc-6.3.0.tar.bz2
    tar jxvf gcc-6.3.0.tar.bz2
    cd gcc-6.3.0
    ./contrib/download_prerequisites
    
  2. 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 buildBefehl. In diesem Fall verwenden wir eine sehr einfache Option:

    cd ~
    mkdir gcc-build && cd gcc-build
    ../gcc-6.3.0/configure -v --prefix=$HOME/gcc-6.3.0
    

    HINWEIS : Stellen Sie sicher, dass Sie die Dokumente gelesen haben, um die verfügbaren Optionen anzuzeigen.

  3. Jetzt sind wir bereit, gcc zu bauen

    • Führen Sie den makeBefehl aus, um gcc zu erstellen. Diese Schritte dauern lange.

      make
      
    • Sobald die obige Phase abgeschlossen ist, können Sie installieren gebaut mit gcc:

      sudo make install
      

      Führen Sie gcc --versionnach Abschluss dieses Vorgangs den Befehl aus , um zu überprüfen, ob die Installation erfolgreich abgeschlossen wurde.


Was macht die Option "-v"? Ich kann es nicht auf gcc.gnu.org/install/configure.html finden
Fabrício Santana


In welchem ​​Ordner wird g ++ 6.3 installiert, wenn Sie diese Schritte ausführen? Zu ~/gcc-6.3.0, zu ~/gcc-buildoder zu einem anderen Ordner? Sollte keiner der erstellten Ordner nach dem Ausführen dieser Befehle entfernt werden oder sind sie alle noch erforderlich?
Hallo Auf Wiedersehen

1
tar xzvf gcc-6.3.0.tar.bz2druckt nur gzip: stdin: not in gzip format; tar: Child returned status 1;; tar: Error is not recoverable: exiting nowAlso habe ich das Archiv mit dem Archivmanager entpackt.
Hallo Auf Wiedersehen

Wenn ich laufe ../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 -lgccund ähnliche Fehler.
Hallo Auf Wiedersehen

4

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 .

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.