2012-09-04 67 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没有定义。