Frage Wie verwende ich den neuesten GCC auf Ubuntu?


Ich möchte mein Programm mit der neuesten Version von gcc.

Ubuntu 14.04 kommt mit gcc 4.8.2, aber es ist 4.9.0 verfügbar, außerdem sehe ich, dass es als Paket verfügbar ist: gcc-4.9. Ich habe versucht, es zu installieren

sudo apt-get install gcc-4.9

aber es sagt

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Note, selecting 'gcc-4.9-base' for regex 'gcc-4.9'
gcc-4.9-base is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

Sieht so aus als wäre es bereits installiert, nur nicht als Standard? Wie nutze ich es, um mein Programm zu erstellen?


120
2018-05-16 01:11


Ursprung


Wenn Sie installieren möchten gcc-4.8 , müssen Sie verwenden sudo apt-get install gcc-4.8. gcc-4.9 ,gcc-4.8 , gcc-4.7, gcc-4.6 alle sind in Ubuntu Hauptrepo.
@Dumindu Aber wie benutze ich gcc-4.9 speziell? - Nickolai Leschov
Deinstallieren Sie andere und installieren Sie 4.9.
@Dumindu Warte, hast du mir gerade gesagt, dass ich tun soll, was ich gerade getan habe? Es funktioniert nicht. - Nickolai Leschov
wechseln zu root user: sudo su - gehe zu /usr/bin dann renne ls -l gcc* und posten Sie Ihre Ausgabe. dann werde ich deine Antwort posten. - αғsнιη


Antworten:


Die beste Methode, gcc-4.9 korrekt zu installieren und als Standard-GCC-Version zu verwenden, ist:

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-4.9 g++-4.9
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.9

Das --slavemit g++, wird verursachen g++ mit geschaltet werden gcc, zur selben Version. Aber zu diesem Zeitpunkt wird gcc-4.9 als einzige Version konfiguriert sein update-alternatives, also füge 4,8 hinzu update-alternatives, also gibt es tatsächlich eine Alternative, indem man:

sudo apt-get install gcc-4.8 g++-4.8
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.8

Dann können Sie prüfen, welche eingestellt ist, und wechseln Sie hin und her mit:

sudo update-alternatives --config gcc

HINWEIS: Sie könnten die Installation des PPA-Repositorys überspringen und einfach verwenden /usr/bin/gcc-4.9-base aber ich bevorzuge die Verwendung der aktualisierten Toolchains.


Für GCC 5.X oder 6 werden die Pakete (und entsprechend die Befehle) gerade aufgerufen gcc-5, gcc-6usw. Dies ist aufgrund der Änderung in GCC-Versionsschema, wobei 5.1 die erste Version von GCC 5 ist, und Zukünftige 5.X-Versionen sind für Fehlerkorrekturen gedacht.


175
2018-02-04 06:21



Danke für die Bearbeitung @muru ... wie ich unten gesagt habe, war ich für ca. 3 Tage sehr müde und update-alternatives benötigt sudo und ich glaube ich habe den (-) vor sklave vergessen. :) Also vielen Dank. - SudoSURoot
Versuchen sudo apt-get -f install - SudoSURoot
Das funktioniert perfekt. Auch ersetzen 5 in für 4.9 GCC 5 unter Ubuntu arbeiten zu lassen. (Mein Entwicklerteam führt nun nach Ihrer Methode 4.9 und 5.) Danke und +1! - CodeMouse92
@hwat Es sollte funktionieren für gcc-6 jetzt. - edwinksl
Das hat mir mehrmals geholfen, aber ich vergesse immer - stelle sicher, dass du dieselbe Lösung auch auf andere Dienstprogramme in der GNU Compiler-Sammlung anwendest, die du benutzen kannst! GCOV zum Beispiel wird sich beschweren über eine Versionskonflikt, wenn Sie nicht, möglicherweise falsche Daten produzieren. - Toby


Benutze die Toolchain-Test erstellt PPA:

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-4.9

Ich glaube nicht, dass GCC 4.9 für Ubuntu 14.04 noch vollständig verfügbar ist. Das Basispaket (gcc-4.9-Basis) und der GCC Go 4.9 Compiler (gccgo-4.9) sind verfügbar, aber die anderen Frontends nicht. Ich weiß nicht warum.


22
2017-07-13 00:04



@SudoSuroot es kann oder kann nicht als Standard festgelegt werden, das ist nicht meine Sorge (es gibt andere Beiträge, die damit zu tun haben). Die C - und C ++ - Frontends von GCC 4.9, die ausschließlich aus den offiziellen Repositories auf 14.04 installiert werden können, sind jedoch offensichtlich falsch, da die gcc-4.9-base Das Paket enthält kein binäres Frontend und wird es auch nicht enthalten. - muru
Sie haben mit dem Basispaket recht. Wie Sie in meiner Antwort sehen werden, habe ich die PPA verwendet. Ich postete den Kommentar zuerst und beantwortete dann die Frage, wie gesagt, von der Frage ... Weil einfach das Hinzufügen des PPA und das Installieren von 4.9 es nicht aktiviert, was benötigt wird, um "gcc 4.9" zu verwenden. Ich hätte den Kommentar löschen sollen, nachdem ich die Frage beantwortet hatte. Ich entschuldige mich. Meine Antwort ist worauf man sich konzentrieren sollte. Ich habe voreilige Schlüsse gezogen ... und kommentiert, um zu fasten. Ich bin eigentlich ziemlich neu mit 14.04, seit ich mir dedizierten Server. Ich werde sicherstellen, dass ich nicht abstimmen kann und ich werde es reparieren, wenn ich es tue. - SudoSURoot
@SudoSuroot in Ordnung. Trotzdem, es sei denn, OP hat ein Problem mit dem Anruf gcc-4.9 oder g++-4.9 Anstatt von gcc oder g++Ich bleibe dabei, die Alternativen nicht zu aktualisieren. - muru
Ich verstehe vollkommen. Ich baue jedoch Android-Systeme, die eine Menge von $ (die gcc) und $ (die g ++) usw. verwendet. Also muss ich immer die Standardeinstellungen auf die Version, die ich verwenden möchte, haben. Ein Teil meines Kernel-Codes kompiliert nicht mit dem Host gcc-4.8, daher musste ich updaten. Ich habe nur wiederholt, was für mich funktioniert hat. Danke, dass du mich daran erinnert hast ... Wie ich in meinem Beitrag gesagt habe, von meinem letzten Kommentar, habe ich vielleicht zu früh abgestimmt, wenn das der Fall ist. Ich war zwei oder drei Tage damit beschäftigt, an meiner Kernel-Quelle zu arbeiten, als ich diese gepostet habe. Jeder hat seine Wege ... Ich fand nur die gründlicher meine Antwort die weniger Fragen, die ich g - SudoSURoot
Das neueste Paket ist GCC-7 ATM - Elder Geek


Um gcc 4.9 gezielt aufzurufen, verwenden Sie gcc-4.9 an der Eingabeaufforderung.

Alle gcc-Versionen, die Sie installiert haben, können einzeln aufgerufen werden, indem Sie einen Bindestrich und die Versionsnummer am Ende hinzufügen gcc. In Ihrem Fall, gcc-4.8 und gcc-4.9 sollte verfügbar sein. Geben Sie in einem Terminal ein gcc- (beachten Sie den Bindestrich) und die Push-Registerkarte zweimal, um festzustellen, ob weitere Versionen installiert sind.

Beachten Sie, dass der Standard-GCC wahrscheinlich immer noch 4.8 ist. (Benutzen gcc -v um dies zu überprüfen.) Leider ist es nicht trivial, den Standard zu ändern, wenn Sie gcc-4.9 aus dem Standard-Repository installiert haben, da kein Update-Alternativ-Eintrag hinzugefügt wurde. Wenn Sie daran interessiert sind, wie Sie den Standard ändern können, lesen Sie die Antworten dazu diese Frage.


2
2017-07-13 00:08



Wie kann ich ein Projekt erstellen, das auf Makefile und möglicherweise einer anderen Build-Infrastruktur basiert? gcc-4.9 Anstatt von gcc? - Nickolai Leschov
Der beste Weg, sicherzustellen, dass gcc-4.9 in Build-Systemen verwendet wird, ist das Ändern des Standard-GCC. Folgen Sie dem Link, den ich in meiner Antwort für die Vorgehensweise angegeben habe. Alternativ könnten Sie einen symbolischen Link erstellen, obwohl ich dies nur als letzte Möglichkeit empfehle, da sich der Paketmanager beim Aktualisieren von gcc beschweren könnte. Wenn du darauf bestehst: sudo rm /usr/bin/gcc; sudo ln -s /usr/bin/gcc-4.9 /usr/bin/gcc. Um zur Standardeinstellung gcc-4.8 zurückzukehren, ersetzen Sie einfach gcc-4.9 durch gcc-4.8. Möglicherweise müssen Sie dies auch mit g ++ und anderen GNU-Compilern tun. - holocronweaver
GCC 4.9 ist in Ubuntu 14.04 nicht verfügbar (außer für die GCC Go-Compiler), während diese Antwort wahrscheinlich in Ubuntu 14.10 funktioniert, hilft es jetzt nicht. :-) - Søren Løvborg
Eigentlich ist es in Ubuntu 14.04 verfügbar, obwohl es ein Fehler gewesen sein könnte: packages.ubuntu.com/trusty/gcc-4.9-base. Ich benutze es seit April. - holocronweaver


Ubuntu 16.04 und später

Sie können gcc 7.0 bereits in Ubuntu 18.04 aus den Standard-Repositories installieren. Um gcc-7 in Ubuntu 17.10, 18.04 und 18.10 zu installieren, öffnen Sie das Terminal und tippen Sie:

sudo apt install gcc-7 

Um Gcc-8 in Ubuntu 18.04 und später zu installieren, öffne das Terminal und tippe:

sudo apt install gcc-8

Sie können Gcc-7 in Ubuntu 16.04 von ppa: jonathonf / gcc-7.1 installieren.

sudo add-apt-repository ppa:jonathonf/gcc-7.1  
sudo apt update  
sudo apt install gcc-7  

Sie können gcc-8 in Ubuntu 16.04 von ppa: jonathonf / gcc-8.0 installieren.

sudo add-apt-repository ppa:jonathonf/gcc-8.0  
sudo apt update  
sudo apt install gcc-8 

0
2017-08-15 10:43