Dans le code ci-dessous, je voudrais la valeur de THE_VERSION_STRING
à prendre de la valeur de la variable d'environnement MY_VERSION
au moment de la compilationComment puis-je utiliser le préprocesseur C pour faire une substitution avec un variable d'environnement
namespace myPluginStrings {
const char* pluginVendor = "me";
const char* pluginRequires = THE_VERSION_STRING;
};
Alors que si je tape:
export MY_VERSION="2010.4"
pluginRequires
sera fixée à « 2010.4 », même si MY_VERSION
est réglé sur quelque chose d'autre au moment de l'exécution.
MISE À JOUR: (fév 21) Merci pour votre aide à tous. Ça marche. Comme j'utilise Rake comme système de construction, chacune de mes CFLAGS est une variable ruby. Les valeurs doivent également se retrouver entre guillemets. Par conséquent, la ligne de commande gcc pour moi doit ressembler à ceci:
gcc file.c -o file -D"PLUGIN_VERSION=\"6.5\""
Ce qui signifie que cela est dans mon Rakefile:
"-D\"PLUGIN_VERSION=\\\"#{ENV['MY_VERSION']}\\\"\""
Ce n'est pas quelque chose que le préprocesseur fera. C'est quelque chose que votre système de construction devrait faire. – GManNickG