Est-ce que GCC-4.8 est disponible pour 12.04 Precise maintenant ?
Mise à jour : Au 06/05/2013, il y a actuellement une version de gcc 4.8.1 disponible pour 12.04 (precise) disponible sur https://launchpad.net/~ubuntu-toolchain-r/+archive/test.
La réponse courte est : gcc-4.8
est actuellement disponible pour 12.04 (Precise) via le PPA toolchain ou en compilant la source (voir ci-dessous pour les détails).
Annonce de sortie
L' annonce de la sortie de gcc-4.8 a été faite le 22 mars, vous ne le verrez donc probablement pas encore dans un dépôt officiel.
Cependant, il semble que Launchpad ait un PPA disponible pour les constructions de test de toolchain qui inclut gcc-4.8, ici : https://launchpad.net/~ubuntu-toolchain-r/+archive/test
Selon le changelog et la liste des packages, il y a des debs pour i386, amd64, arm et powerpc et ils ont été construits contre raring 13.04.
La dernière version disponible de gcc, pour 12.04, est la 4.8.1 et est disponible dans le PPA toolchain.
Ajout du PPA toolchain/test :
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 recommandés. Ces packages 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 ?
-
D'après GNU.ORG, gcc-4.7 supporte un certain nombre de fonctionnalités C++11.
-
À partir de la sortie de gcc-4.8, gcc-4.7 ne prend pas en charge 8 sur 64 fonctionnalités (Voir Support C++0x/C++11 dans GCC)
-
Ces fonctionnalités sont :
Fonctionnalités du langage
- Références Rvalue pour *this
- Attributs généralisés
- Support d'alignement
- Constructeurs hérités
Concurrence
- Barrières bidirectionnelles
- Modèle de mémoire
- Abandon d'un processus et at_quick_exit
- Stockage local au thread
-
Pour une liste complète des modifications dans gcc-4.8, voir la Liste de changements
J'ai besoin de ces fonctionnalités de gcc sur 12.04 Precise, maintenant. Comment puis-je les obtenir ?
Compiler 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 construire à partir de la source.
Veuillez lire la FAQ d'installation de GCC avant l'installation.
Vous pouvez télécharger gcc-4.8 depuis l'un des sites miroirs de gnu.org ou directement depuis leur serveur SVN.
Voici un exemple de é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 préférences.
-
Téléchargez le code source
- Créez un répertoire de création (
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
)
-
Installez quelques bibliothèques supplémentaires (sudo apt-get install libgmp-dev libmpfr-dev libmpc-dev libc6-dev
)
-
Compilez la source : ./gcc-4.8.0/configure --prefix=/app/gcc/4.8.0
-
Exécutez make
(Cela prendra un certain temps pour terminer. Allez faire du café, ou cuisez des cookies. ;-))
-
Installez le code : sudo make install
Une fois ce processus terminé, exécutez la commande gcc --version
pour 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.
En fin de compte: Remerciez tous ceux qui fournissent des backports Ubuntu faciles à installer pour vous. Offrez-leur quelques-uns des cookies que vous avez cuits pendant l'exécution de make
. ;-)