Vraag Hoe gebruik ik de nieuwste GCC op Ubuntu?


Ik wil mijn programma compileren met de nieuwste versie van gcc.

Ubuntu 14.04 wordt geleverd met gcc 4.8.2, maar er is 4.9.0 beschikbaar, bovendien zie ik dat het beschikbaar is als een pakket: gcc-4.9. Ik heb geprobeerd het te installeren

sudo apt-get install gcc-4.9

maar het zegt

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.

Lijkt erop dat het al is geïnstalleerd, alleen niet als de standaardnaam? Hoe gebruik ik het om mijn programma op te bouwen?


120
2018-05-16 01:11


oorsprong


Als je wilt installeren gcc-4.8 , je moet gebruiken sudo apt-get install gcc-4.8. gcc-4.9 ,gcc-4.8 , gcc-4.7, gcc-4.6 alles zit erin Ubuntu hoofdrepo.
@Dumindu Maar hoe gebruik ik het gcc-4.9 in het bijzonder? - Nickolai Leschov
Verwijder anderen en installeer 4.9.
@Dumindu Wacht, heb je me net gezegd om te doen wat ik net deed? Het werkt niet. - Nickolai Leschov
overschakelen naar rootgebruiker: sudo su - ga naar /usr/bin ren dan ls -l gcc* en plaats je output. dan zal ik je antwoord plaatsen. - αғsнιη


antwoorden:


De beste manier om gcc-4.9 correct te installeren en in te stellen als uw standaardversie van de gcc-versie:

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

De --slave, met g++, zal veroorzaken g++ om mee te schakelen gcc, naar dezelfde versie. Maar op dit moment is gcc-4.9 uw enige versie die is geconfigureerd in update-alternatives, dus voeg 4,8 toe aan update-alternatives, dus er is eigenlijk een alternatief, door gebruik te maken van:

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

Vervolgens kunt u controleren welke is ingesteld en heen en weer schakelen met behulp van:

sudo update-alternatives --config gcc

OPMERKING: u kunt het installeren van de PPA Repository overslaan en gewoon gebruiken /usr/bin/gcc-4.9-base maar ik gebruik liever de nieuwe bijgewerkte toolchains.


Voor GCC 5.X of 6 worden de pakketten (en dienovereenkomstig de opdrachten) zojuist gebeld gcc-5, gcc-6, etc. Dit komt door de verandering in GCC's versieschema, waar 5.1 de eerste GCC 5-release is, en toekomstige 5.X-releases zijn bedoeld voor bugfixes.


175
2018-02-04 06:21



Bedankt voor de bewerking @muru ... zoals ik hieronder zei, ik was ongeveer 3 dagen erg moe en update-alternatieven vereist sudo en ik denk dat ik de (-) voor de slaaf ben vergeten. :) Dus dankjewel. - SudoSURoot
Proberen sudo apt-get -f install - SudoSURoot
Dit werkt perfect. Vervang ook 5 in voor 4.9 om GCC 5 op Ubuntu te laten werken. (Mijn ontwikkelingsteam voert nu zowel 4.9 als 5 naast elkaar uit volgens uw methode.) Bedankt en +1! - CodeMouse92
@hwat Het zou moeten werken gcc-6 nu. - edwinksl
Dit heeft me verschillende keren geholpen, maar ik vergeet het altijd - zorg ervoor dat je dezelfde oplossing toepast op andere hulpprogramma's in de GNU-compilatie-verzameling die je kunt gebruiken! GCOV bijvoorbeeld zal klagen over een verkeerde versie van de versie als u dat niet doet, mogelijk met het produceren van onjuiste gegevens. - Toby


Gebruik de Toolchain-test Bouwt PPA:

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

Ik denk dat GCC 4.9 nog niet volledig beschikbaar is voor Ubuntu 14.04. Het basispakket (gcc-4.9-base) en de GCC Go 4.9-compiler (gccgo-4.9) zijn beschikbaar, maar de andere frontends zijn dat niet. Ik weet niet waarom.


22
2017-07-13 00:04



@SudoSURoot het is al dan niet als standaard ingesteld, dat is niet mijn zorg (er zijn andere berichten die daarmee omgaan). Dat de C- en C ++ -frontends van GCC 4.9 op 14.04 kunnen worden geïnstalleerd, zuiver van de officiële repositories, is echter duidelijk onjuist, aangezien de gcc-4.9-base pakket bevat geen binaire frontend en zal dit ook niet bevatten. - muru
Je hebt gelijk over het basispakket. Zoals je zult zien in mijn antwoord, heb ik de PPA gebruikt. Ik heb eerst de reactie gepost en vervolgens de vraag zoals gesteld beantwoord vanuit de vraag ... Omdat eenvoudigweg het toevoegen van de PPA en het installeren van 4.9 het niet mogelijk maakt wat nodig is om "gcc 4.9" te gebruiken. Ik had de opmerking moeten verwijderen nadat ik de vraag had beantwoord. Ik bied mijn excuses aan. Mijn antwoord is waarop moet worden gefocust. Ik ben tot conclusies gekomen ... en heb snel gereageerd. Ik ben eigenlijk vrij nieuw met het gebruik van 14.04 sinds ik me een dedicated server heb gegeven. Ik ga ervoor zorgen dat ik niet sta te stemmen en ik zal het repareren als ik dat doe. - SudoSURoot
@SudoSURoot oke. Toch, tenzij OP een probleem heeft met bellen gcc-4.9 of g++-4.9 in plaats van gcc of g++, Ik zal vasthouden aan het niet updaten van de alternatieven. - muru
Ik begrijp het volledig. Ik bouw echter Android-systemen, die veel $ (welke gcc) en $ (welke g ++) enz. Gebruiken ... Dus ik moet altijd standaard instellen op de versie die ik wil gebruiken. Een deel van mijn kernelcode compileerde niet met host gcc-4.8 dus moest ik updaten. Ik herhaalde gewoon wat voor mij werkte. Bedankt dat je me eraan herinnert ... Zoals ik al zei in mijn bewerking, uit de vorige opmerking, ben ik misschien te vroeg gestemd, als dat zo is, zal ik het oplossen. Ik was al 2 of 3 dagen bezig met het werken aan mijn kernelbron toen ik deze post. Iedereen heeft zijn eigen manier ... Ik vond alleen hoe grondiger mijn antwoord, hoe minder vragen ik heb - SudoSURoot
Het nieuwste pakket is gcc-7 ATM - Elder Geek


Om gcc 4.9 specifiek te gebruiken, gebruikt u gcc-4.9 bij de opdrachtprompt.

Alle gcc-versies die u hebt geïnstalleerd, kunnen afzonderlijk worden aangeroepen door een koppelteken en het versienummer aan het einde toe te voegen gcc. In jouw geval, gcc-4.8 en gcc-4.9 moet beschikbaar zijn. Typ in een terminal gcc- (let op het koppelteken) en de drukknop twee keer om te zien of er andere versies zijn geïnstalleerd.

Merk op dat de standaard gcc waarschijnlijk nog steeds 4.8 is. (Gebruik gcc -v om dit te verifiëren.) Helaas is het wijzigen van de standaardinstelling niet triviaal als u gcc-4.9 hebt geïnstalleerd vanuit de standaardrepository omdat het geen update-alternatieven-vermelding heeft toegevoegd. Als u geïnteresseerd bent in hoe u de standaardinstelling kunt wijzigen, raadpleegt u de antwoorden hierop deze vraag.


2
2017-07-13 00:08



Hoe maak ik een project dat is gebaseerd op makefile en mogelijk andere buildinfrastructuur die is gebouwd met gcc-4.9 in plaats van gcc? - Nickolai Leschov
De beste manier om ervoor te zorgen dat gcc-4.9 wordt gebruikt in alle build-systemen, is het wijzigen van de standaardgcc. Volg de link die ik in mijn antwoord heb gegeven voor hoe dit te doen. Je kunt ook een symbolische link maken, maar ik raad dit af, behalve als laatste redmiddel, omdat de pakketbeheerder mogelijk klagen bij het bijwerken van gcc. Als je erop staat: sudo rm /usr/bin/gcc; sudo ln -s /usr/bin/gcc-4.9 /usr/bin/gcc. Als u wilt terugkeren naar de standaardwaarde gcc-4.8, vervangt u gcc-4.9 door gcc-4.8. Mogelijk moet je dit ook doen met g ++ en andere GNU-compilers. - holocronweaver
GCC 4.9 is niet beschikbaar in Ubuntu 14.04 (behalve de GCC Go-compiler), dus hoewel dit antwoord waarschijnlijk in Ubuntu 14.10 werkt, helpt het nu niet. :-) - Søren Løvborg
Eigenlijk is het beschikbaar in Ubuntu 14.04, hoewel het misschien een vergissing was: packages.ubuntu.com/trusty/gcc-4.9-base. Ik gebruik het al sinds april. - holocronweaver


Ubuntu 16.04 en later

Je kunt gcc 7.0 al in Ubuntu 18.04 installeren vanuit de standaard repository's. Om gcc-7 te installeren in Ubuntu 17.10, 18.04 en 18.10 open je de terminal en typ je:

sudo apt install gcc-7 

Om gcc-8 te installeren in Ubuntu 18.04 en later open je de terminal en typ je:

sudo apt install gcc-8

Je kunt gcc-7 installeren in Ubuntu 16.04 van ppa: jonathonf / gcc-7.1.

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

U kunt gcc-8 installeren in Ubuntu 16.04 van ppa: jonathonf / gcc-8.0.

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

0
2017-08-15 10:43