Hinzufügen Präprozessordirektive dynamisch von Kommandozeilen-Build VS2008
-
30-09-2019 - |
Frage
Ich bin mit VS2008 und C / C ++ Projekten zu entwickeln. Ich .bat Datei mit meinen Projekten von Commandline zu bauen (VC2k8-Eingabeaufforderung). Ich muss einen Weg preprossor Richtlinie dynamisch zum Zeitpunkt der Erstellung einzubeziehen.
Ich bin mit devenv zu bauen von der Kommandozeile.
>devenv my\project\path\myproject.sln /build release > logs\build.log
Eigentlich möchte ich eine Makrodefinition auf einen Befehlszeilenparameter auf die Batchdatei auf Basis einzustellen. Ich kann zwei verschiedene VCPROJ Dateien halten, aber das gibt Probleme in mehrere Projekt / SLN-Dateien zu halten. Meine Batch-Datei würde so etwas wie dieses ...
if (condition)
#define MYPROC_ENABLE_MYMODULE "yes" // To be included in the project.
else
#define MYPROC_ENABLE_MYMODULE "no"
Jede Hilfe wäre wirklich dankbar.
Danke.
Lösung
wäre eine Option gesetzt sein der CL
Umgebungsvariable , mit so etwas wie:
set CL=/DMYPROC_ENABLE_MYMODULE
Der C ++ Compiler (cl.exe
) wird der Inhalt des CL
Umgebungsvariable auf seine Befehlszeile hinzufügen, wenn es ausgeführt wird.
Ich weiß, Sie können Makros definieren, wenn Sie mit msbuild
bauen, aber ich bin nicht sicher, können Sie das gleiche tun, wenn mit devenv
direkt.
Andere Tipps
Sie können verschiedene Konfigurationen für Ihre Lösung machen und verschiedene Prä-Prozessor-Flags für die verschiedenen Konfigurationen definieren. Dann würden Sie brauchen nur die Konfiguration in der Befehlszeile und keine Notwendigkeit für mehrere Lösung oder Projektdateien auszuwählen.