Tim*_*her 21 c++ winapi visual-studio-2005 projects-and-solutions vsprops
我在Visual Studio 2005下编译了许多本机C++库(Win32,没有MFC),并在许多解决方案中使用.
我希望能够选择编译并将它们链接为静态库或DLL,具体取决于我正在使用它们的特定解决方案的需求.
最好的方法是什么?我考虑过这些方法:
编辑:如果有人建议,我也尝试了一个更"聪明"的#3版本,其中我定义了一个包含名为"ModuleConfigurationType"的UserMacro的.vsprops,其值为"2"(DLL)或" 4"(静态库),并更改了.vcproj中的配置ConfigurationType="$(ModuleConfigurationType)".Visual Studio以静默方式无需警告即可删除该属性并替换为该属性ConfigurationType="1".太有帮助了!
我错过了更好的解决方案吗?
小智 5
有一种简单的方法可以在一个项目中创建static和dll lib版本.
创建你的DLL项目.然后执行以下操作:
只需创建一个运行lib工具的nmake makefile或.bat文件.基本上,这就是这个:
lib /NOLOGO /OUT:<your_lib_pathname> @<<
<list_all_of_your_obj_paths_here>
<<
Run Code Online (Sandbox Code Playgroud)
然后,在您的项目中,添加一个Post Build Event,其中命令只运行.bat文件(或nmake或perl).然后,您将始终获得dll和静态库.我将避免诋毁visual studio,因为它不允许在Linker之前的项目中存在这个工具(在工具流程中).