Ecrire un makefile

Résolu/Fermé
Lina - 28 nov. 2010 à 15:32
 Lina - 29 nov. 2010 à 21:57
Bonjour,


Je suis débutante en C
J'ai écrit ce code source ex1_4.c dans lequel j'utilise la compilation conditionnelle
La constante macro doit être définie dans le makefile



#include <stdio.h>
#include<stdlib.h>
int main()
{
#if HW
printf("hello world 1!\r\n") ;
#else
printf ("hello world 2!\r\n") ;
#endif
return 0;
}


Voici le makefile que j'ai

ex1_4: ex1_4.o
gcc -o ex1_4 ex1_4.o -D HW=0

ex1_4.o: ex1_4.c
gcc -c -O3 ex1_4.c -D HW=0


clean:rm -f *.o core
mrproper: clean
rm -f ex1_4


mon problème c'est que quand je change la valeur de HW à 1 il y a toujours affichage de hello world 2! le résultat ne change pas ;

Je ne sais pas où est le problème

Aidez moi s'il vous plaît

Merciiiiiiiiii d'avance
A voir également:

1 réponse

ghuysmans99 Messages postés 2496 Date d'inscription jeudi 14 juillet 2005 Statut Contributeur Dernière intervention 5 juin 2016 339
28 nov. 2010 à 16:18
A mon avis, si tu mets seulement un nom de macro il vérifie son existence, point barre. Essaie ceci :
#if HW=1 
0
oui ghuysmans99 mais je dois attribuer la valeur de HW 0 ou 1 dans le makefile c'est ça le but de l'exercice
0
ghuysmans99 Messages postés 2496 Date d'inscription jeudi 14 juillet 2005 Statut Contributeur Dernière intervention 5 juin 2016 339
28 nov. 2010 à 16:50
Ok je comprends ... essaie alors #ifdef TAMACRO
0
merciiiiiiiiiiiiiiiii pour votre aide

voici ça marche bien.



CC=gcc

CFLAGS= -Wall -D HW=0 -pedantic -ansi

PRG=tpPointeurs-ex2
$(PRG): $(PRG).c
clean:-rm -f *~
cleanall:-em -f $(PRG)
0