我想在我的 CMake 项目中禁用单个 *.cpp 文件的优化。我发现 CMake 提供了以下方法来实现这一点:
SET_SOURCE_FILES_PROPERTIES(${FILE} PROPERTIES COMPILE_FLAGS -O0)
但是,这似乎对我不起作用。我生成了一个 Visual Studio 2013 项目,每当我更改为“Release”或“RelWithDebInfo”时,它仍会完全优化该文件,如属性下所示。
上面的命令放在哪里有关系吗?我有多个 cmake 文件分布在整个项目中。我将上面的命令直接放在了将 *.cpp 文件添加到项目的 cmake 文件中。
或者是否有任何其他方式告诉 CMake 这个文件根本不应该被优化?
最佳答案
谢谢齐瓦列夫!
事实上,我必须将命令放在包含相应的 add_library() 的 cmake 文件中才能使其工作。
但除此之外,我还必须应用一个小的更改:Visual Studio 需要 -Od(而不是 -O0)来禁用优化。
因此 Visual Studio 构建的最终命令如下所示:
SET_SOURCE_FILES_PROPERTIES(${FILE} PROPERTIES COMPILE_FLAGS -Od)
并将其放置在 cmake 文件中,其中 add_library() 调用是针对该 *.cpp 文件的。
关于c++ - CMake:如何禁用单个 *.cpp 文件的优化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33540578/