next up previous contents index
Next: Créer des bibliothèques C Up: Utiliser gcc Previous: Compilation à partir d'un

   
Compilation à partir de deux fichiers sources

On peut dans un premier fichier source définire une fonction qui sera appelée par un autre fichier source. Par exemple, le fichier cercle.c contient simplement la définition d'une fonction utilisée par le fichier aire.c. Voici le fichier cercle.c :

/* 
 * cercle.c - Exemple de fichier source en C qui, compile avec
 * un autre source (aire.c), donne l'executable aire
 *
 */

#include <math.h>

#define SQUARE(x) ((x)*(x))

/* definition de la fonction "aire_du_cercle" utilisee par aire.c */

double 
aire_du_cercle (double r)
{
  return M_PI * SQUARE (r);
}

et voici le fichier aire.c :

/* 
 * aire.c - Exemple de fichier source en C qui, compile avec
 * un autre source (cercle.c), donne l'executable aire
 *
 */

#include <stdio.h>
#include <stdlib.h>

/*
 * fonction "aire_du_cercle" definie dans un autre fichier source
 * (ici cercle.c).
 *
 */

double aire_du_cercle (double r);

void 
main (int argc, char **argv)
{
  double aire, rayon;
  if (argc < 2)
    {
      printf ("Usage : %s rayon\n", argv[0]);
      exit (1);
    }
  else
    {
      rayon = atof (argv[1]);
      aire = aire_du_cercle (rayon);
      printf ("Aire du cercle de rayon %f = %f\n", rayon, aire);
    }
}

Pour compiler un tel programme, il faut d'abord compiler chaque source avec l'option -c (le fichier obtenu sera un fichier objet, avec l'extension .o), puis compiler les deux fichiers objets pour faire l'exécutable aire :

gcc -c aire.c
gcc -c cercle.c
gcc  aire.o cercle.o -o aire

Pour compiler en utilisant des bibliothèques (personnelles ou non), voir section 8.2. Pour compiler en utilisant des bibliothèques partagées, voir section 8.5.



MATHIEU DECORE
1999-11-03
Merci de me dire ce que pensez de ce document.