最近使用UILIB界面库,在编译界面库时始终无法生成指定版本(DLL Debug)的库文件,最后发现是Configuration Manager错误.具体情况如下.
此工程有4个配置如图:
从命名可知分别是 动态库Debug版本 Release版本 和 静态库Debug版本 Release版本
选择第一个DLL_Debug编译链接后,输出如下:
1>------ Build started: Project: UiLib, Configuration: Static_Release_2010 Win32 ------
......
1> UiLib.vcxproj -> D:\Projects\UI\DuiLib_Redrain\\Common\Static_Release_2010\UiLib.lib
可以看到编译出的不是动态库,反而是静态库,查看工程配置如图:
可以看到配置也是正确的,通过前边的输出信息可以看到编译的工程配置其实是Static_Release_2010并不是当前的DLL_Debug_2010,问题原因在于configuration Manager有问题,如图:
DLL_Debug_2010对应的Configuration列是Static_Release_2010,和当前不符,这里修改为DLL_Debug_2010,然后保存,重新编译,输出信息如下:
1>------ Build started: Project: UiLib, Configuration: DLL_Debug_2010 Win32 ------
......
1> UiLib.vcxproj -> D:\Projects\UI\DuiLib_Redrain\UiLib\..\dll\UiLib_ud.dll
从信息得知已经生成Debug版的DLL文件了,磁盘文件如图:
此问题反应了Configuration Manager的一个使用细节,更一步理解VS.