Ecrire un makefile

Résolu
Lina -  
 Lina -
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

1 réponse

  1. ghuysmans99 Messages postés 2496 Date d'inscription   Statut Contributeur Dernière intervention   342
     
    A mon avis, si tu mets seulement un nom de macro il vérifie son existence, point barre. Essaie ceci :
    #if HW=1 
    0
    1. Lina
       
      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
    2. ghuysmans99 Messages postés 2496 Date d'inscription   Statut Contributeur Dernière intervention   342
       
      Ok je comprends ... essaie alors #ifdef TAMACRO
      0
    3. Lina
       
      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