Comment installer gcc-4.8

94

J'ai vérifié la version de gcc sur mon système.

Il est actuellement à 4.6.3. J'ai lu que gcc-4.8 est sorti.

J'ai essayé les commandes suivantes sans succès:

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

Est-ce que quelqu'un sait comment installer ce paquet sur 12.04?

MdT
la source
La réponse de @ maggotbrain a fonctionné pour moi, même si je devais ajouter: sudo apt-get install gcc-multilib car je rencontrais ce problème: superuser.com/questions/432202/make-fails-compiling-gcc
skillman
2
Note aux futurs utilisateurs: Si vous obtenez un message d'erreur comme une référence non définie à `lexer_line ', c'est à cause d'outils manquants: bison et flex sudo apt-get install bison sudo apt-get install flex comme indiqué ici: http: // stackoverflow. com / questions / 4262531 / trouble-bâtiment-gcc-4-6
virtualPN

Réponses:

119

Est-ce que GCC-4.8 est disponible pour 12.04 Precise maintenant?

Mise à jour : Le 6/05/2013, une version de gcc 4.8.1 pour la version 12.04 (précise) est actuellement disponible à l' adresse https://launchpad.net/~ubuntu-toolchain-r/+archive/test .

La réponse courte est: gcc-4.8est actuellement disponible pour 12.04 (Précis) via le toolkit PPA ou en compilant la source (voir ci-dessous pour plus de détails).

Annonce de sortie

L' annonce de la publication de gcc-4.8 a été faite le 22 mars, vous ne verrez donc probablement pas cela dans un répertoire officiel pour l'instant.

Cependant, il semble que Launchpad dispose d'un PPA disponible pour les versions de test de chaînes d'outils incluant gcc-4.8, ici: https://launchpad.net/~ubuntu-toolchain-r/+archive/test

Selon le journal des modifications et la liste des paquets , il y a des debs pour i386, amd64, arm et powerpc et ont été construits contre la version 13.04.

La dernière version disponible de gcc, pour 12.04, est la 4.8.1 et est disponible dans la chaîne d'outils PPA.

Ajout de la chaîne d’outils / test PPA:

Pour ajouter le PPA à votre système, ouvrez un terminal ( Ctrl+ Alt+ t) et exécutez les commandes suivantes:

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

Vous serez également invité à installer un certain nombre de packages suggérés. Ces paquets sont recommandés, mais optionnels, pour l'installation de gcc-4.8.

Quelles fonctionnalités C ++ sont disponibles dans gcc-4.8 qui ne sont pas disponibles dans gcc-4.7.2?

  • Selon GNU.ORG , gcc-4.7, prend en charge un certain nombre de fonctionnalités de C ++ 11 .
  • A partir de la version gcc-4.8, gcc-4.7 ne prend pas en charge 8 fonctionnalités sur 64 (voir Prise en charge de C ++ 0x / C ++ 11 dans GCC ).

  • Ces fonctionnalités sont:

    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 
    
  • Pour une liste complète des changements dans gcc-4.8, consultez le Changelist

J'ai besoin de ces fonctionnalités gcc sur 12.04 Precise, maintenant. Comment puis-je les obtenir?

Bâtiment GCC-4.8 à partir de la source:

Si vous avez besoin de gcc-4.8 sur 12.04 maintenant, votre seule option est de le compiler à partir des sources .

Veuillez lire la FAQ d'installation de GCC avant l'installation.

Vous pouvez télécharger gcc-4.8 à partir de l’un des sites miroirs de gnu.org ou directement à partir de leur serveur SVN .

Voici un exemple d’étapes pour compiler à partir de la source (voir ici pour plus de détails.) Notez que celles-ci peuvent varier en fonction de votre système et de vos préférences.

  1. Télécharger le code source

    • Faire un répertoire de construction ( mkdir gcc-build && cd gcc-build)
    • Téléchargez le fichier source: wget http://www.netgull.com/gcc/releases/gcc-4.8.0/gcc-4.8.0.tar.bz2(ajustez cette commande pour utiliser un site miroir approprié .
    • Décompressez le fichier ( tar -xvjf <file name>)
  2. Installer des bibliothèques supplémentaires ( sudo apt-get install libgmp-dev libmpfr-dev libmpc-dev libc6-dev)

  3. Compilez la source: ./gcc-4.8.0/configure --prefix=/app/gcc/4.8.0
  4. Courez make(Cela prendra du temps. Allez faire du café ou préparez des biscuits. ;-))
  5. Installez le code: sudo make install

Une fois ce processus terminé, exécutez la commande gcc --versionpour vérifier que l'installation s'est terminée avec succès. Vous devriez voir quelque chose de similaire à la sortie suivante:

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.

La ligne du bas: Merci à tous ces gens qui fournissent facile pour installer les backports Ubuntu pour vous. Donnez-leur des biscuits que vous avez cuits en courant make. ;-)

Kevin Bowen
la source
Excellente réponse, sauf:E: Unable to locate package gcc-4.8
John Dibling le
2
L'installation des bibliothèques supplémentaires ne m'a pas suffi, mais son exécution a été ./contrib/download_prerequisites.shcorrigée (à partir de stackoverflow.com/questions/9253695/… ).
Gauthier
7
Note: Je devais aussi installer le paquet g ++ - 4.8 (en plus de gcc-4.8) pour pouvoir compiler du code C ++. Sinon , je recevais l'erreur de compilation: gcc: error trying to exec 'cc1plus': execvp: No such file or directory 4.8.
Boris Dalstein
J'ai réussi à installer gcc4.8 sur Precise
Homunculus Reticulli
1
@ John Dibling - Effectivement, la méthode exposée installe les fichiers, mais en tant que tel, vous ne construisez jamais de paquet ni n'en installez aucun ... par conséquent, vous ne pouvez pas le trouver (leur) :-). Il existe un moyen rapide de construire automatiquement les paquets en utilisant le dossier debian à partir de link . Je l'ai fait avec succès pour d'autres paquets. Cette solution installera Tous les paquets liés, y compris g ++, etc ...
Antonio
1

Donc, la réponse ci-dessus fonctionne, au moins pour une installation manuelle. Même après sudo make install, l'exécution gccne fait que lancer la version de stock 4.6.3. Même essayer gcc-4.8ou gcc-4.8.0ne fonctionne pas. Courir /app/gcc/4.8.0/bin/gccsemble être la seule chose qui fonctionne pour moi. Je veux dire que c'est un peu nul, mais au moins ça marche.

utilisateur149393
la source
5
[: facepalm:] Avant d’appeler les choses "boiteuses", vous devriez peut-être mettre à niveau vos connaissances des systèmes d’exploitation. Vous pouvez commencer par lire sur le concept de PATH: fr.wikipedia.org/wiki/PATH_(variable)
pszilard
1
Bien sûr, comme vous n'installez aucun paquet avec le script DEBIAN / postinst, vous devez définir manuellement la version par défaut à utiliser par votre système via la cmd update-alternatives . line ... Si vous avez utilisé --prefix = / usr, inutile de vous mêler de PATH ...
Antonio