我使用 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 提供的一些标志。