Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
gcc [Le 27/09/2017, 21:38]
78.243.8.240 [Installer une autre version (…plus récente)]
gcc [Le 08/03/2023, 11:41] (Version actuelle)
86.67.213.218 [GCC, le jeu de compilateurs GNU]
Ligne 2: Ligne 2:
  
 {{ gcc_logo.png?​80nolink| Logo GCC}} {{ gcc_logo.png?​80nolink| Logo GCC}}
 +
 ====== GCC, le jeu de compilateurs GNU ====== ====== GCC, le jeu de compilateurs GNU ======
  
-GCC (GNU Compiler Collection) est une suite de logiciels libres de compilation. On l'​utilise dans le monde Linux dès que l'on veut transcrire du code source en langage machine, c'est le plus répandu des compilateurs. La suite gère le et ses dérivés mais aussi le Java ou encore le Fortran.+GCC (GNU Compiler Collection) est une suite de logiciels libres de compilation. On l'​utilise dans le monde Linux dès que l'on veut transcrire du code source en langage machine, c'est le plus répandu des compilateurs. La suite gère les langages ​C, C++, Objective-C,​ [[Fortran]], Ada, Go et D.
  
 Le noyau [[Linux]] dépend dans sa compilation des possibilités pointues de son compilateur C. Le noyau [[Linux]] dépend dans sa compilation des possibilités pointues de son compilateur C.
Ligne 21: Ligne 22:
 </​code>​ </​code>​
  
-Puis, exécutez la liste suivante de commandes((http://​askubuntu.com/​questions/​466651/​how-do-i-use-the-latest-gcc-on-ubuntu/​581497)) en remplaçant si besoin le par le numéro de version voulue:+Puis, exécutez, avec les [[:​sudo|droits d'​administration]], ​la liste suivante de commandes((https://​askubuntu.com/​questions/​466651/​how-do-i-use-the-latest-gcc-on-ubuntu/​581497)) en remplaçant si besoin le par le numéro de version voulue:
 <​code>​ <​code>​
-sudo add-apt-repository ppa:​ubuntu-toolchain-r/​test +add-apt-repository ppa:​ubuntu-toolchain-r/​test 
-sudo apt-get update +apt-get update 
-sudo apt-get install gcc-g++-5 +apt-get install gcc-g++-8 
-sudo update-alternatives --install /​usr/​bin/​gcc gcc /​usr/​bin/​gcc-60 --slave /​usr/​bin/​g++ g++ /​usr/​bin/​g++-5+update-alternatives --install /​usr/​bin/​gcc gcc /​usr/​bin/​gcc-60 --slave /​usr/​bin/​g++ g++ /​usr/​bin/​g++-8
 </​code>​ </​code>​
  
-Pour choisir la version de **''​gcc''​** de manière ​intéractive ​+Puis finalement, ​choisir la version de **''​gcc''​** ​par défaut ​de manière ​interactive ​
-  ​sudo ​update-alternatives --config gcc+ <​code>​update-alternatives --config gcc</​code>​ 
 ===== Utilisation ===== ===== Utilisation =====
  
Ligne 40: Ligne 42:
 en remplaçant bien sûr ''​code.ext''​ par le fichier source d'​entrée et ''​binaire''​ par le fichier de sortie souhaité. À défaut de paramètre //output file// (''​-o binaire''​),​ gcc créera ''​a.out''​. en remplaçant bien sûr ''​code.ext''​ par le fichier source d'​entrée et ''​binaire''​ par le fichier de sortie souhaité. À défaut de paramètre //output file// (''​-o binaire''​),​ gcc créera ''​a.out''​.
  
-À noter qu'il faut se trouver dans le dossier où se situe le fichier.c. ​+À noter qu'il faut se trouver dans le dossier où se situe le fichier.c.
  
 ==== en C++ ==== ==== en C++ ====
Ligne 66: Ligne 68:
 on peut compléter -Wall avec on peut compléter -Wall avec
 <​code>​-Wextra</​code>​ <​code>​-Wextra</​code>​
 +
 +Compilation sans édition de lien:
 +<​code>​g++ -c fichier.cpp </​code>​
 +à la différence de l'​option //-S// vue plus haut, cela crée le(s) fichier(s) objet(s)
 +
 +Compiler avec option de debuggage:
 +<​code>​g++ -g fichier.cpp -o binaire_debuggable</​code>​
 +
 +Compiler avec des fichiers //include// (header files):
 +<​code>​g++ -c fichier.cpp -I./​include</​code>​
 +Nota: vos fichier .h ou .hpp sont généralement avec vos sources, il est inutile d'​ajouter cette option pour ces fichiers, en revanche, si vous avez des librairies à lier, il faut spécifier le chemin des fichiers //headers// de ces librairies.
  
 Optimisation:​ Optimisation:​
Ligne 77: Ligne 90:
 ===== Exécution ===== ===== Exécution =====
  
-  * Pour exécuter le programme/​fichier binaire généré par le GCC, programmé en c par exemple, avec un fichier nommé "​BinaireTest" ​ +  * Pour exécuter le programme/​fichier binaire généré par le GCC, programmé en c par exemple, avec un fichier nommé "​BinaireTest"​
   * <​code>​./​BinaireTest</​code>​   * <​code>​./​BinaireTest</​code>​
-  * Si vous avez des erreur essayez de modifier le "droit d'​accès"​ du ficher avec cette commande :+  * Si vous avez des erreur ​liées aux permissions, ​essayez de modifier le "droit d'​accès"​ du ficher avec cette commande :
   *  <​code>​sudo chmod 770 BinaireTest</​code> ​   *  <​code>​sudo chmod 770 BinaireTest</​code> ​
- 
- 
----- 
- 
-//​Contributeurs : [[utilisateurs:​Johndescs]],​ [[utilisateurs:​bcag2]],​ [[utilisateurs:​bensuperpc]]//​ 
- 
  
 ===== Liens ===== ===== Liens =====
Ligne 92: Ligne 99:
   * Site officiel : [[http://​gcc.gnu.org|GCC,​ the GNU Compiler Collection]] [en]   * Site officiel : [[http://​gcc.gnu.org|GCC,​ the GNU Compiler Collection]] [en]
   * Wikipedia : [[wpfr>​GNU_Compiler_Collection|Page sur GCC]] [fr]   * Wikipedia : [[wpfr>​GNU_Compiler_Collection|Page sur GCC]] [fr]
-  * Tutoriel gcc : [[http://fr.openclassrooms.com/informatique/​cours/​compilez-sous-gnu-linux|Compilez ​sous GNU/Linux][fr] +  * Tutoriel gcc : [[https://user.oc-static.com/pdf/31992-compilez-sous-gnu-linux.pdf|compilez ​sous gnu linux]] (document non mis à jour depuis 2013)
   * [[gdb|Débugage avec gdb]]   * [[gdb|Débugage avec gdb]]
- 
  
 ---- ----
  
-//​Contributeurs : [[utilisateurs:​Johndescs]],​ [[utilisateurs:​bcag2]]//​+//​Contributeurs : [[utilisateurs:​Johndescs]],​ [[utilisateurs:​bcag2]], [[utilisateurs:​bensuperpc]]//
  • gcc.1506541136.txt.gz
  • Dernière modification: Le 27/09/2017, 21:38
  • par 78.243.8.240