web-dev-qa-db-fra.com

Comment utiliser le dernier GCC sur Ubuntu?

Je souhaite compiler mon programme avec la dernière version de gcc.

Ubuntu 14.04 est fourni avec la version 4.8.2 de gcc. Cependant, il existe une version 4.9.0. En outre, je vois qu’elle est disponible sous forme de package: gcc-4.9 . J'ai essayé de l'installer

Sudo apt-get install gcc-4.9

mais ça dit

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.

On dirait qu'il est déjà installé, mais pas par défaut? Comment puis-je l'utiliser pour construire mon programme?

127
Nickolai Leschov

Le meilleur moyen d'installer correctement gcc-4.9 et de le définir comme version par défaut de gcc est d'utiliser:

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

Le --slave, avec g++, provoquera le basculement de g++ avec gcc vers la même version. Mais à ce stade, gcc-4.9 sera votre seule version configurée dans update-alternatives, ajoutez donc 4.8 à update-alternatives, il existe donc une alternative, en utilisant:

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

Ensuite, vous pouvez vérifier lequel est défini et le changer en utilisant:

Sudo update-alternatives --config gcc

REMARQUE: Vous pouvez ignorer l'installation du référentiel PPA et simplement utiliser /usr/bin/gcc-4.9-base, mais je préfère utiliser les nouvelles chaînes d'outils mises à jour.


Pour GCC 5.X ou 6, les packages (et les commandes correspondantes) sont simplement appelés gcc-5, gcc-6, etc. Cela est dû au changement intervenu dans schéma de version de GCC , où 5.1 est le premier GCC 5 versions, et les futures versions 5.X concernent les corrections de bugs .

189
SudoSURoot

Utilisez le Toolchain Test Builds PPA :

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

Je ne pense pas que GCC 4.9 soit entièrement disponible pour Ubuntu 14.04 pour le moment. Le paquet de base ( gcc-4.9-base ) et le compilateur GCC Go 4.9 ( gccgo-4.9 ) sont disponibles, mais les autres interfaces ne le sont pas. Je ne sais pas pourquoi.

23
muru

Ubuntu 16.04 et plus tard

Vous pouvez déjà installer gcc 7.0 dans Ubuntu 18.04 à partir des référentiels par défaut. Pour installer gcc-7 dans Ubuntu 17.10, 18.04 et 18.10, ouvrez le terminal et tapez:

Sudo apt install gcc-7 

Pour installer gcc-8 dans Ubuntu 18.04 et versions ultérieures, ouvrez le terminal et tapez:

Sudo apt install gcc-8

Pour installer gcc-9 dans Ubuntu 19.04 et ultérieur, ouvrez le terminal et tapez:

Sudo apt install gcc-9

Vous pouvez installer gcc-7 dans Ubuntu 16.04 à partir de ppa: jonathonf/gcc-7.1.

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

Vous pouvez installer gcc-8 dans Ubuntu 16.04 à partir de ppa: jonathonf/gcc-8.0.

Sudo add-apt-repository ppa:jonathonf/gcc-8.0  
Sudo apt update  
Sudo apt install gcc-8 
4
karel

Pour appeler spécifiquement gcc 4.9, utilisez gcc-4.9 dans la commande Invite.

Toutes les versions de gcc que vous avez installées peuvent être appelées individuellement en ajoutant un trait d'union et le numéro de version à la fin de gcc. Dans votre cas, gcc-4.8 et gcc-4.9 devraient être disponibles. Dans un terminal, saisissez gcc- (notez le trait d'union) et cliquez deux fois sur l'onglet Push pour voir si d'autres versions sont installées.

Notez que le gcc par défaut est probablement encore 4.8. (Utilisez gcc -v pour vérifier cela.) Malheureusement, modifier la valeur par défaut n'est pas chose facile si vous avez installé gcc-4.9 à partir du référentiel par défaut car il n'a pas ajouté d'entrée de mise à jour-alternatives. Si vous souhaitez modifier la valeur par défaut, voir les réponses à cette question cette question .

3
holocronweaver