2012-09-04 38 views
0

現在我建立一個.dll項目,VC 10.根據某些庫是否包括與否,輸出.dll文件以及其相應的庫文件名應該是不同的。例如,如果項目使用由Mirosoft提供的本機STL庫,則該.dll名稱是* _native_stl.dll;如果項目使用STLport,則輸出的.dll名稱是* _stlport.dll。當然我可以手動完成,但我現在正在考慮讓VC 10自動爲我做。我的計劃是,如果我使用某個庫,我將定義一個變量來表示它在預處理器定義(位於C/C++預處理器)部分。之後,我在後生成事件(位於生成事件)部分中定義一個.bat文件:call "$(ProjectDir)\script.bat"。在script.bat文件,我將根據在預處理定義部分變量定義改變了默認的.dll文件輸出名稱$(OutDir)$(TargetName)$(TargetExt)。我的主要問題是在批處理文件中如何檢查某個變量是否被定義。謝謝!有關更改輸出文件名的任何建議也是受歡迎的。VC生成後事件命令

+1

你爲什麼不使用不同的生成配置,每個配置設置爲輸出名稱,定義等 –

+0

感謝您的建議,但我不知道在哪裏可以找到VC 10.每個配置設置可能你給我一個線索? – feelfree

+0

MSDN上的[生成配置](http://msdn.microsoft.com/en-us/library/kkz9kefa%28v=vs.100%29) –

回答

0
My main problem is that for in batch file how I can check a certain variable is defined or not. Thanks! 

你可以用如下語句檢查:

if "%MYVAR%" == "" set undefined=1 

變量未定義將被設置爲1只有MYVAR沒有定義。