lundi 2 mars 2015

conditional compilation confusion and failure


I want to compile different files with a common *.c file. Like I want to compile A.c common.c xor B.c common.c but I can't figure out how to achieve that.


Can you please tell me how do I make common.c use different headers without using my text editor to change the headers list every time I want to compile


So let's say I have 3 files: A.c, B.c and common.c.


A.h and B.h define an enum enum {Mon, Tues, Wed...} in different ways. And that enum is used in common.c. So I can't just do in common.c:



#include "A.h"
#include "B.h"


What I thought of doing is to use preprocessor directives:


In common.h



#define A 1
#define B 2


In A.c



#define COMPILE_HEADER A


And in common.c



#if COMPILE_HEADER == A
#include A.h
#end


This doesn't work, ofcourse, because the compiler didnt visit the A.c file to find #define COMPILE_HEADER A


So can you please tell me how do I make common.c use different headers without using my text editor to change the headers list every time I want to compile?




Aucun commentaire:

Enregistrer un commentaire