Question

J'utilise VS2008, et le développement de projets C / C ++. J'utilise .bat pour construire mes projets à partir commandline (VC2k8 invite de commande). Je besoin d'un moyen d'inclure directive preprossor dynamiquement au moment de la construction.

J'utilise devenv à construire de la ligne de commande.

>devenv my\project\path\myproject.sln /build release > logs\build.log

En fait, je veux définir une définition de macro basée sur un paramètre de ligne de commande au fichier batch. Je peux garder deux fichiers .vcproj différents, mais qui donne problème dans la conservation de plusieurs projets / fichiers sln. Mon fichier batch serait quelque chose comme ça ...

if (condition)
#define MYPROC_ENABLE_MYMODULE "yes" // To be included in the project.
else
#define MYPROC_ENABLE_MYMODULE "no"

Toute aide serait vraiment apprécié.

Merci.

Était-ce utile?

La solution

Une option serait de mettre en le CL la variable d'environnement , en utilisant quelque chose comme:

set CL=/DMYPROC_ENABLE_MYMODULE

Le compilateur C ++ (cl.exe) ajoutera le contenu de la variable d'environnement CL à sa ligne de commande lors de son exécution.

Je sais que vous pouvez définir des macros si vous construisez en utilisant msbuild, mais je ne suis pas sûr que vous pouvez faire la même chose lors de l'utilisation directement devenv.

Autres conseils

Vous pouvez effectuer différentes configurations pour votre solution et définir des indicateurs de préprocesseur pour les différentes configurations. Ensuite, vous juste besoin de sélectionner la configuration à la ligne de commande et pas besoin de solution ou plusieurs fichiers de projet.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top