我想禁用 CMake 项目中单个 *.cpp 文件的优化。我发现 CMake 提供了以下功能来实现此目的:
SET_SOURCE_FILES_PROPERTIES(${FILE} PROPERTIES COMPILE_FLAGS -O0)
然而,这似乎对我不起作用。我生成一个 Visual Studio 2013 项目,每当我更改为“Release”或“RelWithDebInfo”时,它仍然会完全优化该文件,如属性下所示。
上面的命令放在哪里有关系吗?我有多个 cmake 文件分布在整个项目中。我将上面的命令直接放在 cmake 文件中,其中 *.cpp 文件被添加到项目中。
或者有没有其他方法告诉 CMake 该文件根本不应该得到优化?
谢谢齐瓦列夫!
事实上,我必须将命令放置在包含相应 add_library() 的 cmake 文件中才能使其工作。
但除此之外,我还必须应用一个小更改:Visual Studio 需要 -Od(而不是 -O0)来禁用优化。
因此 Visual Studio 构建的最终命令如下所示:
SET_SOURCE_FILES_PROPERTIES(${FILE} PROPERTIES COMPILE_FLAGS -Od)
并将其放置在 cmake 文件中,其中 add_library() 调用是针对该 *.cpp 文件的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)