Pour le makefile, sache déja qu'il n'est pas obligatoire; Ca évite juste de devoir se réécrire toutes le commandes à la main.
si tu veut débuter et que tu n'utilise qu'un fichier il suffit de tapper ca pour compiler :
gcc -o nomDeLExecutable fichierSource.c
maintenant imagine que tu as deux fichiers :
fichierSource1.c et fichierSource2.c
le but est de compiler les deux séparément et de les réunir a la fin :
nomDeLExecutable: fichierSource1.o fichierSource2.o
(tabulation)gcc -o nomDeLExecutable fichierSource1.o fichierSource2.o
fichierSource1.o : fichierSource1.c
(tabulation)gcc -c fichierSource1.c
fichierSource2.o : fichierSource2.c
(tabulation)gcc -c fichierSource2.c
Que va t'il se passer lorsque tu vas tapper make dans un terminal ?
Le systeme va tenter de réaliser la premiere règle :
nomDeLExecutable: fichierSource1.o fichierSource2.o
problème il ne connait pas les fichiers *.o il va donc chercher les règles permettant de les faire. Ca tombe bien la prochaine règle est :
fichierSource1.o : fichierSource1.c
ok il a tout il peut donc faire :
(tabulation)gcc -c fichierSource1.c
ensuite il va voir la prochaine règle
fichierSource2.o : fichierSource2.c
et execute la commande correspondant à la règle.
(tabulation)gcc -c fichierSource2.c
il possède donc tous les fichier necessaires à la réalisation de la premiere règle et fait donc
(tabulation)gcc -o nomDeLExecutable fichierSource1.o fichierSource2.o
Ce qui achève la compilation du programme.
PS : gcc -o nomdesortie fichierdentree = compiler et/ou linker en specifiant le nom de sortie
gcc -c fichierdentree = compiler les fichiers dans un .o
voila j'espère que c'est clair.