VC++ : faire un makefile ? - C++ - Programmation
Marsh Posté le 09-09-2003 à 17:51:13
Si tu sais faire des makefile sous Linux, c'est pareil avec VC++
vla en gros ton makefile
CPP = cl.exe
LIB32 = link.exe -lib
OUTDIR = .
SRCDIR = .
OBJS= \
"$(OUTDIR)\A_di_A.obj" \
...
CFLAGS1 = /D "INT"
CFLAGS2 = /D "LONG"
all : "$(OUTDIR)\mylib.lib"
"$(OUTDIR)\mylib.lib" : $(OBJS)
$(LIB32) $(OBJS)
"$(OUTDIR)\A_di_A.obj" : "$(SRCDIR)\AA.c"
$(CPP) $(CFLAGS1) /c "$(SRCDIR)\AA.c" /Fo"$(OUTDIR)\A_di_A.obj"
...
Mais je vois pas trop l'intéret d'avoir dans un meme fichier source des fonctions differentes suivant des options de compilation. Autant faire deux fichiers separes.
Marsh Posté le 09-09-2003 à 21:48:08
ok merci hellbilly.
en fait ils ont pas ecrit 2 fois les memes fonctions... la tech des codeurs de ce truc (umfpack) est pas pratique pour compiler, mais bon, voilà leur tech si ca interresse :
dans un header :
#ifdef DLONG
#define UMF_analyze umf_l_analyze
...
#else
#define UMF_analyze umf_i_analyze
...
#endif
dans umf_analyse.c :
GLOBAL Int UMF_analyze(Int n_row,Int n_col,.....){......}
dans un autre entete :
#if defined (DLONG)
#define Int long
...
#else
#define Int int
...
#endif
Marsh Posté le 07-09-2003 à 11:12:39
lu
je voudrais faire un makefile VC++ où les fichiers .c sont compilés de la sorte :
define DINT puis AA.c -> A_di_A.obj
define DLONG puis AA.c -> A_dl_A.obj
define DINT puis AB.c -> A_di_B.obj
define DLONG puis AB.c -> A_dl_B.obj
puis mettre les 4 fichiers dans un .lib
merci
(et si y'a moyen de porter un makefile gcc sous vc++, je prends aussi)