【发布时间】:2019-08-19 21:02:10
【问题描述】:
是否可以使用 CMake 在 Visual Studio 的“发布”模式下设置某些头文件进行编译?
场景:
整个项目用CMake设置(不生成proj/sln文件,直接指向项目的目录)
我们通过 CMake 引入了仅标头依赖项,该依赖项在发布模式下运行速度非常快,但是在调试模式下运行速度不快。
是否可以将此依赖项设置为在发布模式下构建,而应用程序的其余部分在调试模式下运行?如果这不可能,是否有任何解决方法?
作为参考,我使用的是 Visual Studio 2019 Community 16.1.6
【问题讨论】:
-
在调试模式下运行速度不快 调试模式可能比发布模式慢 100 倍。我见过应用程序在发布模式下花费几秒钟而在调试模式下花费一天以上的情况。
-
是否可以将此依赖项设置为在发布模式下构建,而应用程序的其余部分在调试模式下运行?很可能不是。这可能会导致您同时拥有调试和发布运行时 CRT,从而导致 UB。
-
你不编译头文件。
.cpp文件使用需要更改其编译选项的头文件。 -
“你不编译头文件”——当然。在我发布这个之前,我应该意识到我在问什么。我将需要研究部署依赖项的其他途径。谢谢 drescherlm、Jesper 和 Richard。
-
对于任何可能偶然发现这一点的人来说,Richard 对于头文件没有被编译是 100% 正确的,但是,我能够通过切换 " CMakeSettings.json下的“配置类型”到“RelWithDebInfo”。
标签: c++ cmake visual-studio-2019