So installieren Sie gcc-4.8

94

Ich habe die gcc-Version auf meinem System überprüft.

Es ist derzeit bei 4.6.3. Ich habe gelesen, dass gcc-4.8 raus ist.

Ich habe die folgenden Befehle ohne Erfolg ausprobiert:

sudo apt-get install gcc (gcc is already the newest version)
sudo apt-get install gcc-4.8 (unable to locate package)

Weiß jemand, wie man dieses Paket auf 12.04 installiert?

MdT
quelle
@ MaggotBrain Antwort ist für mich, obwohl ich hinzufügen musste: sudo apt-get gcc-multilib installieren , wie ich in dieses Problem wurde ausgeführt: superuser.com/questions/432202/make-fails-compiling-gcc
skillman
2
Hinweis für zukünftige Googler: Wenn Sie eine Fehlermeldung wie undefinierten Verweis auf `lexer_line 'erhalten, liegt dies an fehlenden Tools: bison und flex sudo apt-get installieren bison sudo apt-get installieren flex wie hier beschrieben: http: // stackoverflow. com / questions / 4262531 / trouble-building-gcc-4-6
virtualPN

Antworten:

119

Ist GCC-4.8 für 12.04 Precise jetzt verfügbar?

Update : Ab dem 05.06.2013 steht unter https://launchpad.net/~ubuntu-toolchain-r/+archive/test ein Release von gcc 4.8.1 für 12.04 (präzise) zur Verfügung .

Die kurze Antwort lautet: gcc-4.8ist derzeit für 12.04 (Präzise) über die Toolchain PPA oder durch Kompilieren der Quelle verfügbar ( Einzelheiten siehe unten).

Ankündigung veröffentlichen

Die Ankündigung für die Veröffentlichung von gcc-4.8 erfolgte am 22. März, sodass Sie dies wahrscheinlich noch nicht in einem offiziellen Repository sehen werden.

Es scheint jedoch, dass Launchpad über ein PPA für die Toolchain -Testbuilds verfügt, das gcc-4.8 enthält, hier: https://launchpad.net/~ubuntu-toolchain-r/+archive/test

Laut Changelog und Paketliste gibt es Debs für i386, amd64, arm und powerpc, die gegen das Raring 13.04 gebaut wurden.

Die neueste verfügbare Version von gcc für 12.04 ist 4.8.1 und in der Toolchain PPA verfügbar.

Hinzufügen der Toolchain / Test-PPA:

Um die PPA zu Ihrem System hinzuzufügen, öffnen Sie ein Terminal ( Ctrl+ Alt+ t) und führen Sie die folgenden Befehle aus:

sudo apt-get install python-software-properties
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-4.8
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 50

Sie werden außerdem aufgefordert, eine Reihe von vorgeschlagenen Paketen zu installieren. Diese Pakete werden für die Installation von gcc-4.8 empfohlen, sind jedoch optional.

Welche C ++ - Funktionen sind in gcc-4.8 verfügbar, die in gcc-4.7.2 nicht verfügbar sind?

  • Laut GNU.ORG unterstützt gcc-4.7 eine Reihe von C ++ 11-Funktionen .
  • Ab der Version gcc-4.8 unterstützt gcc-4.7 nicht mehr 8 von 64 Funktionen (siehe C ++ 0x / C ++ 11-Unterstützung in GCC ).

  • Diese Funktionen sind:

    Language Features
    - Rvalue references for *this
    - Generalized attributes
    - Alignment support
    - Inheriting constructors
    Concurreny
    - Bidirectional Fences
    - Memory model
    - Abandoning a process and at_quick_exit
    - Thread-local storage 
    
  • Eine vollständige Liste der Änderungen in gcc-4.8 finden Sie im Changelist

Ich brauche diese GCC-Funktionen jetzt für 12.04 Precise. Wie kann ich sie bekommen?

Erstellen von GCC-4.8 aus der Quelle:

Wenn Sie jetzt gcc-4.8 für 12.04 benötigen, können Sie es nur aus dem Quellcode erstellen .

Bitte lesen Sie vor der Installation die FAQ zur GCC- Installation.

Sie können gcc-4.8 von einer der Spiegelseiten von gnu.org oder direkt von ihrem SVN-Server herunterladen .

Hier ist ein Beispiel der Schritte von der Quelle zu kompilieren (siehe hier für weitere Details.) Beachten Sie, dass diese je nach System variieren und Vorlieben.

  1. Laden Sie den Quellcode herunter

    • Erstelle ein Build-Verzeichnis ( mkdir gcc-build && cd gcc-build)
    • Laden Sie die Quelldatei herunter: wget http://www.netgull.com/gcc/releases/gcc-4.8.0/gcc-4.8.0.tar.bz2(Passen Sie diesen Befehl an, um eine geeignete Mirror-Site zu verwenden .
    • Entpacke die Datei ( tar -xvjf <file name>)
  2. Installieren Sie einige zusätzliche Bibliotheken ( sudo apt-get install libgmp-dev libmpfr-dev libmpc-dev libc6-dev)

  3. Kompilieren Sie die Quelle: ./gcc-4.8.0/configure --prefix=/app/gcc/4.8.0
  4. Run make(Dies wird einige Zeit in Anspruch nehmen. Machen Sie einen Kaffee oder backen Sie ein paar Kekse. ;-))
  5. Installieren Sie den Code: sudo make install

Führen Sie gcc --versionnach Abschluss dieses Vorgangs den Befehl aus , um zu überprüfen, ob die Installation erfolgreich abgeschlossen wurde. Sie sollten etwas sehen, das der folgenden Ausgabe ähnelt:

maggotbrain@foucault:~$ gcc --version
gcc (Linaro 4.8.0) 4.8.0
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Fazit: Vielen Dank an alle, die einfach zu installierende Ubuntu-Backports für Sie bereitgestellt haben. Geben Sie ihnen einige der Kekse, die Sie beim Laufen gebacken haben make. ;-)

Kevin Bowen
quelle
Ausgezeichnete Antwort, außer:E: Unable to locate package gcc-4.8
John Dibling
2
Das Installieren der zusätzlichen Bibliotheken hat mir nicht gereicht, aber das Ausführen hat es ./contrib/download_prerequisites.shbehoben (von stackoverflow.com/questions/9253695/… ).
Gauthier
7
Hinweis: Ich musste auch das Paket g ++ - 4.8 (zusätzlich zu gcc-4.8) installieren, um C ++ - Code kompilieren zu können. Ansonsten war ich den Compiler - Fehler bekommen: gcc: error trying to exec 'cc1plus': execvp: No such file or directory 4.8.
Boris Dalstein
Ich konnte gcc4.8 erfolgreich auf Precise
Homunculus Reticulli 10.11.13
1
@ John Dibling - Sicher genug, dass die exponierte Methode die Dateien installiert, aber als solche bauen Sie niemals ein Paket oder installieren eines ... daher können Sie es (sie) nicht finden :-). Nun, es gibt eine schnelle Möglichkeit, die Pakete mithilfe des debian-Ordners von link automatisch zu erstellen . Ich habe es erfolgreich für andere Pakete gemacht. Diese Lösung installiert alle zugehörigen Pakete, einschließlich g ++ etc ...
Antonio
1

Also obige Antwort klappt zumindest bei manueller Installation. Obwohl es auch danach noch läuft sudo make install, läuft gccimmer noch die Standardversion 4.6.3. Selbst wenn es versucht gcc-4.8oder gcc-4.8.0nicht funktioniert. Laufen /app/gcc/4.8.0/bin/gccscheint das einzige zu sein, was bei mir funktioniert. Ich meine, es ist ein bisschen lahm, aber zumindest funktioniert es.

user149393
quelle
5
[: facepalm:] Bevor Sie Dinge als "lahm" bezeichnen, sollten Sie möglicherweise Ihre Betriebssystemkenntnisse aufrüsten. Sie können mit dem Lesen des Konzepts von PATH beginnen: en.wikipedia.org/wiki/PATH_(variable)
pszilard
1
Klar, da Sie kein Paket mit DEBIAN / postinst-Skript installieren, müssen Sie die Standardversion, die von Ihrem System verwendet wird, manuell über den Befehl update-alternatives cmd festlegen . line ... Wenn Sie --prefix = / usr verwendet haben, müssen Sie sich nicht in PATH einmischen ...
Antonio