CMake:取决于构建类型的默认标志
Posted
技术标签:
【中文标题】CMake:取决于构建类型的默认标志【英文标题】:CMake: default flags depending on build type 【发布时间】:2014-10-22 08:38:13 【问题描述】:我在一个项目中使用 CMake 2.8.12.2,我注意到根据构建类型,它会向编译器添加一些标志。对于 Release 构建类型,它添加了-O3
和-NDEBUG
。
问题是,由于这个项目将用于不同的平台,我不知道他们使用的是哪个 CMake 版本(当然高于 2.8),我想知道是否有一些默认标志对于每种构建类型,或者此功能是否取决于 CMake 的版本。
我知道我可以将我的标志添加到变量 CMAKE_CXX_FLAGS_*
,但我想通过只添加一次标志而不覆盖已经完成的内容来保持编译“干净”。
【问题讨论】:
【参考方案1】:这会将“-Wall”添加到发布标志
set(CMAKE_CXX_FLAGS_RELEASE "$CMAKE_CXX_FLAGS_RELEASE -Wall")
【讨论】:
是的,我知道。我在询问有关 cmake 根据构建类型添加到编译中的默认标志的更多信息。 找出默认值,然后自己覆盖它,并确保您永远不会有重复。如果你想要更多的控制,你可以使用 cmake 提供的 string() 函数,但我保证它看起来会很乱,你不会有任何帮助,因为没有人这样做。【参考方案2】:-O3
和 -NDEBUG
已经被 CMake 使用了很长一段时间;以至于您不必担心它们,因为实际上它们已经独立于 CMake 版本。
【讨论】:
以上是关于CMake:取决于构建类型的默认标志的主要内容,如果未能解决你的问题,请参考以下文章