2009-11-23 9 views

Répondre

12

Je ne suis pas entièrement sûr de ce que vous entendez par ligne de commande vcbuild mais si vous voulez dire le compilateur de ligne de commande Visual C++, vous pouvez ajouter des définitions en ajoutant/Dxxxx, par exemple.

cl.exe /DSHAREWARE .... 

Réponse complémentaire en fonction des commentaires:

Vous devriez être en mesure de définir la variable d'environnement CL avec le préprocesseur supplémentaire définissent:

SET CL=/DSHAREWARE 
devenv .... 

D'informations sont disponibles sur MSDN

+0

Je pensais devenirv.exe. cl compile seulement IIRC. devenv fait la liaison aussi bien. –

+0

Cela fonctionne bien - je viens de trouver la même réponse ailleurs. Merci quand même! –

+0

Eh bien, alors vous devriez accepter la réponse afin que les autres puissent voir que cette question est résolue ... – HakonB

1

Les #defines sont définis dans votre fichier de projet Visual Studio (fichier .dsp ou .vcproj). Ceci est un fichier texte simple. Vous pouvez donc modifier le fichier de projet à partir d'un script, puis appelez devenv.exe.

0

Dans mon cas, j'avais besoin d'utiliser devenv pour d'autres raisons, (et fonctionnait en cygwin, donc j'avais sed).

Je mis un symbole de compilation dans les propriétés du projet SED_REPLACE_THIS puis utilisé sed pour le mettre à quelque chose de significatif (ie: DONT_CRASH_AS_MUCH)

sed -i 's/SED_REPLACE_THIS/DONT_CRASH_AS_MUCH/g' project.csproj

1

dans les paramètres du projet, ajoutez la définition de préprocesseur suivante :

$ (MyPreprocessorDefinitions);

alors dans votre fichier * .bat, utilisez

REM #define MY_DEF

set MyPreprocessorDefinitions = MY_DEF

DEVENV.EXE ...

REM #undefine MY_DEF

set MyPreprocessorDefinitions =