Domanda

Sto usando VS2008, e lo sviluppo di progetti di C / C ++. Sto usando il file .bat per costruire i miei progetti da riga di comando (VC2k8 prompt dei comandi). Ho bisogno di un modo per includere direttiva preprossor dinamico in fase di compilazione.

Sto usando devenv costruire da riga di comando.

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

In realtà io voglio impostare una definizione di macro sulla base di un parametro di riga di comando per il file batch. Posso tenere due file .vcproj diversi, ma che dà problemi a mantenere più file di progetto / SLN. Il mio file batch sarebbe qualcosa di simile ...

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

Qualsiasi aiuto sarebbe molto apprezzato.

Grazie.

È stato utile?

Soluzione

Una possibilità potrebbe essere quella di impostare il CL variabile d'ambiente , usando qualcosa come:

set CL=/DMYPROC_ENABLE_MYMODULE

Il compilatore C ++ (cl.exe) aggiungerà il contenuto della variabile d'ambiente CL alla sua linea di comando durante l'esecuzione.

So che è possibile definire le macro se si costruisce utilizzando msbuild, ma non sono sicuro che si può fare la stessa cosa quando si utilizza direttamente devenv.

Altri suggerimenti

È possibile effettuare diverse configurazioni per la soluzione e definire diverse bandiere del preprocessore per le diverse configurazioni. Poi si sarebbe solo bisogno di selezionare la configurazione nella riga di comando e nessuna necessità di utilizzare più file di soluzione o di progetto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top