Est-il possible d'ajouter un #define _MYDEFINE_
dans mon fichier d'en-tête en fonction de certaines options dans les paramètres du projet. Ex: Supposons que dans mon fichier d'en-tête exposée (qui est livré avec la bibliothèque) J'ai quelques macros comme indiqué ci-dessous:Est-il possible de définir une macro dans le fichier d'en-tête en utilisant des paramètres de projet ou des options de makefile?
#ifdef _MYDEFINE_
#define ABC 2
#else
#define ABC 4
#endif
Maintenant, tout en construisant ma bibliothèque, je peux ajouter _MYDEFINE_
dans mes paramètres, mais je ne veut pas que l'utilisateur de la bibliothèque ajoute _MYDEFINE_
dans ses paramètres de projet ou code. Au lieu de cela, je veux que "#define _MYDEFINE_
" soit automatiquement ajouté au début de l'en-tête.
Note:#define _MYDEFINE_
devrait obtenir ajouté que lorsqu'il est défini dans mes paramètres de préprocesseur. Pour les autres paramètres, il ne devrait pas être ajouté.
Si ce n'est pas possible grâce aux paramètres du projet, y a-t-il des façons novatrices de le faire? Toutes les idées sont les bienvenues.
J'ai juste ajouté _MYDEFINE_ comme exemple. Je ne nomme vraiment pas mes constantes de cette façon. Mais, est-ce que/D ajoute la définition à votre fichier d'en-tête exposé? Je parle du point de vue d'une bibliothèque avec des fichiers d'en-tête exposés qui seront utilisés par certaines applications. – Jay
@Jay: Non, le "/ D" serait typiquement dans le makefile, pas n'importe lequel des fichiers source. Donc, fondamentalement, vous l'ajouteriez à votre makefile pour quand vous construisez la bibliothèque. –