Bonjour,

Dans mon makefile, je compile un fichier .c avec l'option -DVERSION=VERSION_XXX, (pas de double-quotes)

Dans le fichier source, je voudrais pouvoir récupérer cette valeur dans un char*.

Donc je fais une macro:
#define VERSION_TITLE(x) {std::cout<<#x<<std::endl;}
VERSION_TITLE(VERSION);

Or, l'execution m'affiche "VERSION" et non pas "VERSION_XXX".

Comment peux-t-on forcer l'évaluation par le préprocesseur de VERSION dans l'expression #VERSION ?
J'ai essayé (avec c'est bien vrai peu d'espoir) ###version en espérant que la priorité donnerait #(##(VERSION)) mais ca ne marche pas.

D'autre part je pourrais me dérouiller en mettant les quotes dans le makefile:
-DVERSION="VERSION_XXX", (pas de double-quotes), mais j'obtiens alors "VERSION_XXX undeclared" à la compil, ce qui signifierait (est-ce bien normal???) que les dbl-quotes n'ont pas été prises en compte bien (alors que je les vois bien dans la ligne de commande du make)...

Merci pour vos idées...