Vraag Hoe gcc-4.8 te installeren


Ik controleerde de gcc-versie op mijn systeem.

Het staat momenteel op 4.6.3. Ik heb gelezen dat gcc-4.8 uit is.

Ik probeerde de volgende opdrachten zonder succes:

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

Weet iemand hoe dit pakket te installeren op 12.04?


90
2018-03-22 22:25


oorsprong


@ maggotbrain's antwoord werkte voor mij, hoewel ik moest toevoegen: sudo apt-get install gcc-multilib toen ik dit probleem tegenkwam: superuser.com/questions/432202/make-fails-compiling-gcc - skillman
Opmerking voor toekomstige googlers: als u een foutmelding krijgt zoals ongedefinieerde verwijzing naar `lexer_line 'Het is vanwege ontbrekende tools: bison en flex sudo apt-get install bison sudo apt-get install flex zoals hier wordt aangegeven: http://stackoverflow.com/questions/4262531/trouble-building-gcc-4-6 - virtualPN


antwoorden:


Is GCC-4.8 nu beschikbaar voor 12.04 Precise?

Bijwerken: Met ingang van 6/05/2013 is er momenteel een release van gcc 4.8.1 voor 12.04 (exact) beschikbaar op https://launchpad.net/~ubuntu-toolchain-r/+archive/test.

Het korte antwoord is: gcc-4.8 is momenteel beschikbaar voor 12.04 (Nauwkeurig) via de toolchain PPA  of door de bron te compileren (zie hieronder voor details).

Release aankondiging

De aankondiging voor de release van gcc-4.8 is gemaakt op 22 maart, dus je zult dit waarschijnlijk nog niet in een officiële repository zien.

Het lijkt er echter op dat Launchpad een PPA beschikbaar heeft voor de toolchain test builds die wel gcc-4.8 bevat, hier: https://launchpad.net/~ubuntu-toolchain-r/+archive/test

Volgens de changelog en pakketlijst, er zijn debs voor i386, amd64, arm en powerpc en zijn gebouwd tegen raring 13.04.

De nieuwste beschikbare versie van gcc, voor 12.04, is 4.8.1 en is beschikbaar in de toolchain PPA.

De toolchain / test-PPA toevoegen:

Als u de PPA aan uw systeem wilt toevoegen, opent u een terminal (Ctrl+alt+t) en voer de volgende opdrachten uit:

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

U wordt ook gevraagd om een ​​aantal voorgestelde pakketten te installeren. Deze pakketten worden aanbevolen, maar optioneel, voor de installatie van gcc-4.8.

Welke C ++ -functies zijn beschikbaar in gcc-4.8 die niet beschikbaar zijn in gcc-4.7.2?

  • Volgens GNU.ORG, gcc-4.7, ondersteunt een aantal C ++ 11 functies.
  • Vanaf de gcc-4.8 release biedt gcc-4.7 geen ondersteuning voor 8 van de 64 functies (Zie C ++ 0x / C ++ 11 Ondersteuning in GCC)

  • Deze functies zijn:

    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 
    
  • Voor een volledige lijst van wijzigingen in gcc-4.8, zie de Aanpassingslijst

Ik heb deze gcc-functies nu nodig op 12.04 Precise. Hoe kan ik ze krijgen?

GCC-4.8 bouwen vanaf bron:

Als je nu gcc-4.8 op 12.04 nodig hebt, is je enige optie om bouw het vanaf de bron.

Lees alstublieft de Veelgestelde vragen over GCC-installatie voorafgaand aan installatie.

Je kunt gcc-4.8 downloaden van een van gnu.org's spiegel sites of rechtstreeks van hun SVN-server.

Hier is een voorbeeld van stappen om te compileren vanaf de bron (zie hier voor meer informatie.) Merk op dat deze kunnen variëren afhankelijk van uw systeem en voorkeuren.

  1. Download de broncode

    • Maak een build-map ( mkdir gcc-build && cd gcc-build)
    • Download het bronbestand: wget http://www.netgull.com/gcc/releases/gcc-4.8.0/gcc-4.8.0.tar.bz2 (pas deze opdracht aan om een ​​geschikte te gebruiken spiegel site.
    • Pak het bestand uit (tar -xvjf <file name>)
  2. Installeer enkele extra bibliotheken (sudo apt-get install libgmp-dev libmpfr-dev libmpc-dev libc6-dev)

  3. Compileer de bron: ./gcc-4.8.0/configure --prefix=/app/gcc/4.8.0
  4. Rennen make (Dit zal enige tijd in beslag nemen om wat koffie te zetten, of wat koekjes bakken ;-))
  5. Installeer de code: sudo make install

Zodra dit proces is voltooid, voert u de opdracht uit gcc --version om te controleren of de installatie met succes is voltooid. U zou iets moeten zien dat lijkt op de volgende uitvoer:

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.

De bottom line: bedank al die mensen die eenvoudig Ubuntu-backports voor u kunnen installeren. Geef ze een aantal van de cookies die je hebt gebakken tijdens het hardlopen make. ;-)


115
2018-04-14 23:01



Uitstekend antwoord, behalve: E: Unable to locate package gcc-4.8 - John Dibling
Het installeren van de extra bibliotheken was niet genoeg voor mij, maar wel actief ./contrib/download_prerequisites.sh repareerde het (uit stackoverflow.com/questions/9253695/...). - Gauthier
Opmerking: ik moest ook het pakket g ++ - 4.8 (naast gcc-4.8) installeren om C ++-code te kunnen compileren. Anders kreeg ik de compileerfout: gcc: error trying to exec 'cc1plus': execvp: No such file or directory 4.8. - Boris
Ik kon gcc4.8 met succes installeren op Precise - Homunculus Reticulli
@ John Dibling - Ja hoor, de getoonde methode installeert de bestanden, maar als zodanig bouw je nooit een pakket op en installeer het ook niet ... vandaar dat je het niet kunt vinden :-). Wel is er een snelle manier om automatisch de pakketten te bouwen met behulp van de debian-map van link. Ik heb het met succes voor andere pakketten gedaan. Deze oplossing installeert alle gerelateerde pakketten inclusief g ++ etc ... - Antonio


Dus beantwoord bovenstaande werken, althans voor handmatige installatie. Maar zelfs daarna sudo make install, rennen gcc draait gewoon gewoon de voorraadversie 4.6.3. Zelfs proberen gcc-4.8 of gcc-4.8.0 werkt niet. hardlopen /app/gcc/4.8.0/bin/gcc lijkt het enige te zijn dat voor mij werkt. Ik bedoel, het is een beetje zwak, maar het werkt tenminste.


1



[: facepalm:] Voordat je dingen "lame" noemt, moet je misschien je kennis van het besturingssysteem upgraden. U zou kunnen beginnen met het lezen van het concept van PATH: en.wikipedia.org/wiki/PATH_(variable) - pszilard
Natuurlijk, aangezien u geen pakket installeert met DEBIAN / postinst script, moet u handmatig de standaardversie instellen die uw systeem gebruikt via de -update-alternatieven cmd. regel ... Als je --prefix = / usr hebt gebruikt, hoef je je niet te bemoeien met PATH ... - Antonio