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.

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top