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

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

SET_SOURCE_FILES_PROPERTIES(${FILE} PROPERTIES COMPILE_FLAGS -O0)

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

放置上述命令的位置是否重要?我在整个项目中分发了多个cmake文件.我将上面的命令直接放在cmake文件中,其中* .cpp文件被添加到项目中.

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

最佳答案 谢谢Tsyvarev!

实际上,我必须将命令放在cmake文件中,其中包含相应的add_library()以使其工作.

但另外还有一点我必须应用的变化:Visual Studio需要-Od(而不是-O0)来禁用优化.

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

SET_SOURCE_FILES_PROPERTIES(${FILE} PROPERTIES COMPILE_FLAGS -Od)

这放在cmake文件中,其中add_library()调用该* .cpp文件.

点赞