2009-11-23 105 views

回答

12

我不完全確定vcbuild命令行是什麼意思,但是如果您的意思是Visual C++命令行編譯器,那麼您可以通過add/Dxxxx添加定義,例如,

cl.exe /DSHAREWARE .... 

基於評論其他答案:

您應該能夠設置CL環境變量與額外的預處理器定義:

SET CL=/DSHAREWARE 
devenv .... 

單純的信息可以在MSDN

+0

我想到了devenv.exe。 cl只編譯IIRC。 devenv也連接。 – 2009-11-23 13:59:24

+0

工作正常 - 我在其他地方找到了相同的答案。不管怎麼說,還是要謝謝你! – 2009-11-23 15:05:08

+0

那麼,你應該接受答案,以便其他人可以看到這個問題解決了...... – HakonB 2009-11-23 15:23:55

1
被發現

#defines在您的Visual Studio項目文件(.dsp或.vcproj文件)中定義。這是一個簡單的文本文件。所以你可以從腳本編輯項目文件,然後調用devenv.exe。

0

在我的情況下,我需要使用devenv出於其他原因,(並在cygwin中運行,所以我有sed)。

我設置項目的屬性SED_REPLACE_THIS 彙編符號,然後用sed將其設置爲有意義的事:在您的項目設置(即DONT_CRASH_AS_MUCH

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

1

,添加以下預處理器定義:

$(MyPreprocessorDefinitions);

然後在* .bat文件,使用

REM的#define MY_DEF

集MyPreprocessorDefinitions = MY_DEF

devenv.exe的...

REM #undefine僞MY_DEF

set MyPreprocessorDefinitions =