Compiler du C sous Linux/UNIX

[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 - Modifié le 30 mai 2022 à 01:37
Note : dohm est l'auteur d'origine de l'astuce.


Installation sous Debian et distributions assimilées

Sous Linux, le compilateur de C est gcc. Il est installé de base sur plusieurs distributions, mais sur Debian (et celles qui en découlent) il faudra l'installer.

Sous Debian, et les distributions dérivées de celle-ci, installer le métapaquet
build-essential
pour disposer du compilateur et des outils de ligne de commande utiles (make, linker, etc.), et, éventuellement le paquet
manpages-dev
pour disposer des pages de manuel.


apt-get install build-essential
apt-get install manpages-dev

gcc

Tout d'abord, il faut savoir ce que signifie l'abréviation GCC: GNU Compiler Collection. En fait, il est le compilateur créé par le projet GNU. Il s'agit d'une collection de logiciels libres intégrés capables de compiler divers langages de programmation, dont C, C++, Objective-C, Java, Ada et Fortran.

GCC est utilisé pour le développement de la plupart des logiciels libres. Le noyau Linux dépend notamment étroitement des fonctionnalités de GCC.

En pratique, l'abréviation GCC est utilisée pour nommer trois entités légèrement différentes :

1. la collection complète de compilateurs ;
2. la partie commune à tous les compilateurs ;
3. le compilateur C lui-même.

Pour faire référence précisément aux compilateurs de chaque langage, on parle de :
  • GCC pour C ;
  • G++ pour C++ ;
  • GCJ pour Java ;
  • GNAT pour Ada ;
  • Gfortran pour Fortran ;
  • GPC pour le Pascal;
  • GHDL pour le VHDL.


GCC dispose également d'un outil de débuggage, GNU Debugger (gdb). Bien que ne faisant pas partie de GCC, Valgrind est cependant préféré pour des tests plus en profondeurs, notamment pour rechercher les fuites de mémoire.


apt-get install valgrind

Syntaxe de GCC

Je voudrais donner ici les deux principales commandes de GCC pour le c, après je vous renvoie à
man gcc
;-)

$ gcc masource.c


Ceci crée un exécutable du nom de a.out, que l'on lancera avec ./a.out.

$ gcc -o <nom_du_programme_que_l'on_souhaite_donner> -c <masource>.c


L'argument -o vous permet de choisir le nom de l'exécutable qui résultera de cette compilation.