CMake:如何禁用单个 *.cpp 文件的优化?

Sim*_*mon 5 c++ windows cmake visual-studio

我想在我的 CMake 项目中禁用单个 *.cpp 文件的优化。我发现 CMake 提供了以下功能来实现这一点:

SET_SOURCE_FILES_PROPERTIES(${FILE} PROPERTIES COMPILE_FLAGS -O0)
Run Code Online (Sandbox Code Playgroud)

但是,这似乎对我不起作用。我生成了一个 Visual Studio 2013 项目,每当我更改为“Release”或“RelWithDebInfo”时,它仍然会完全优化该文件,如属性下所示。

上面的命令放在哪里重要吗?我在整个项目中分布了多个 cmake 文件。我将上述命令直接放在 cmake 文件中,其中 *.cpp 文件被添加到项目中。

或者有没有其他方法可以告诉 CMake 这个文件根本不应该被优化?

Sim*_*mon 2

谢谢齐瓦列夫!

事实上,我必须将命令放置在包含相应 add_library() 的 cmake 文件中才能使其工作。

但除此之外,我还必须应用一个小更改:Visual Studio 需要 -O d(而不是 -O0)来禁用优化。

因此 Visual Studio 构建的最终命令如下所示:

SET_SOURCE_FILES_PROPERTIES(${FILE} PROPERTIES COMPILE_FLAGS -Od)
Run Code Online (Sandbox Code Playgroud)

并将其放置在 cmake 文件中,其中 add_library() 调用是针对该 *.cpp 文件的。