2014-10-22 92 views
0

我在项目中使用CMake 2.8.12.2,我注意到取决于构建类型,它向编译器添加了一些标志。在版本构建类型的情况下,它添加了-O3-NDEBUGCMake:取决于构建类型的默认标志

问题是,因为这个项目将被用于不同的平台,我不知道他们正在使用哪个CMake版本(当然高于2.8),我想知道是否有一些默认每个构建类型的标志,或者该功能是否取决于CMake的版本。

我知道我可以将我的标记添加到变量CMAKE_CXX_FLAGS_*,但我想通过只添加一次标记来保持编译“干净”,而不是覆盖已经完成的操作。

回答

0

这将增加“-Wall”的发布标志

set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -Wall") 
+0

是的,我知道。我问的更多关于默认标志cmake根据构建类型添加到编译。 – Jcao02 2014-10-22 10:28:54

+0

找出默认值,并自己覆盖它,并确保你永远不会有重复。如果你想要更多的控制,你可以使用cmake提供的string()函数,但是我保证它看起来很乱,你不会有任何帮助,因为没有人这样做。 – ChrisWard1000 2014-10-22 12:56:04

0

-O3-NDEBUG已经很长一段时间使用CMake的;所以你不应该担心他们,因为在实践中他们已经独立于CMake版本。