Compilation séparée

1. Commande de compilation

mcc -c module1.c -o module1.o
* avec alias mcc gcc -ansi -pedantic -W -Wall
* -o module1.o   est optionnel puisque le nom est repris par défaut
 

2. Fichiers include

#include "votre_fichier.h"   et non   #include <fichier_systeme.h>

A. Comment partager une variable globale ?

B. Comment ne pas répéter une partie des déclarations ?

C. Comment ne pas inclure plusieurs fois le même fichier ?


3. Commande d'édition de liens

mcc -lm -o executable module1.o ... moduleN.o
-lm   est optionnel et demande le lien avec la bibliothèque mathématique (utile uniquement lorsque l'inclusion de <math.h> a été nécessaire lors de la compilation d'au moins un des modules)
L'exécution s'obtient par :   ./executable
 

4. makefile typique en C : à télécharger (pas de copier/coller !)

             Le fichier doit s'appeler makefile sans extension !

# definitions du projet
TARGET   = exe
OBJECTS  = main.o proc.o
#
# premiere regle: commande d'edition de liens
$(TARGET) : $(OBJECTS)
        $(CC) $(LFLAGS) -o $@ $(OBJECTS)
#
# dependances d'includes
main.o : main.h prototypes.h
proc.o : proc.h prototypes.h
#
# commande generale de compilation
%.o : %.c
        $(CC) $(CFLAGS) -o $@ -c $<
#
# parametres de gcc
CC = gcc
CFLAGS = -ansi -pedantic -W -Wall
LFLAGS = -lm
#
# commandes de nettoyage
TOCLEAN = $(OBJECTS) *~
clean :
        rm $(TOCLEAN)

cleanall :
        rm $(TARGET) $(TOCLEAN)