我使用 CMake 为 Visual Studio 2010 生成的解决方案。
在我的解决方案中,我有几个lib项目和一个exe项目。对于Debug构建配置,我使用诸如等的输出lib1_d.lib名称lib2_d.lib...
对于Release我使用的构建配置lib1.lib,lib2.lib...
感谢 CMake,我使用了一个额外的构建配置 - RelWithDebugInfo. 我为此构建配置使用与Release.
现在问题来了:
假设一切都被清理干净。
我点击F5(运行/开始调试)RelWithDebugInfo。所有项目都已构建(exe取决于它们)并且项目成功运行。
我切换到Release并再次击中F5。所有项目都已构建并且项目成功运行。(输出目录中的库被覆盖)
我切换回RelWithDebugInfo并击中F5. VS 快速通过并给出All outputs are up-to-date.......Build succeeded.并且不会覆盖lib输出目录中的文件。因此应用程序崩溃是因为它使用库进行其他构建配置。
此问题发生在订购Release->RelWithDebugInfo和RelWithDebugInfo->Release
我还没有找到解决方案,如何在RelWithDebugLibraries 我的 SO 问题中添加其他前缀
有没有办法强制Visual Studio 2010总是覆盖输出?最好通过我可以从 CMake 提供的一些标志。