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 07/05/2017, 21:04]
bensuperpc [Exécution]
gcc [Le 08/03/2023, 11:41] (Version actuelle)
86.67.213.218 [GCC, le jeu de compilateurs GNU]
Ligne 1: Ligne 1:
 {{tag>​programmation compilation java}} {{tag>​programmation compilation java}}
 +
 +{{ gcc_logo.png?​80nolink| Logo GCC}}
 +
 +====== 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 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.
 +
 ===== Installation ===== ===== Installation =====
  
Ligne 13: 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>​
 +
 +Puis finalement, choisir la version de **''​gcc''​** par défaut de manière interactive :
 + <​code>​update-alternatives --config gcc</​code>​
 +
 ===== Utilisation ===== ===== Utilisation =====
  
Ligne 29: 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 55: 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 66: 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 81: 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.1494183881.txt.gz
  • Dernière modification: Le 07/05/2017, 21:04
  • par bensuperpc