CMake:取决于生成类型的默认标志
CMake: default flags depending on build type
我在一个项目中使用CMake 2.8.12.2,我注意到根据构建类型,它会向编译器添加一些标志。在Release构建类型的情况下,它会添加-O3
和-NDEBUG
。
问题是,由于这个项目将在不同的平台上使用,我不知道他们使用的是哪个CMake版本(当然是2.8以上),我想知道每个构建类型是否有一些默认标志,或者这个功能是否取决于CMake的版本。
我知道我可以将我的标志添加到变量CMAKE_CXX_FLAGS_*
中,但我希望通过只添加一次标志而不覆盖已经完成的内容来保持编译的"干净"。
这将在发布标志中添加"-Wall"
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -Wall")
-O3
和-NDEBUG
已被CMake使用了相当长的一段时间;以至于你不必担心它们,因为在实践中,它们独立于CMake版本。
相关文章:
- 如何创建一个CMake变量,除非显式重写,否则使用默认值
- 如何使用默认参数等选择模板专业化
- 具有默认模板参数的多态类的模板推导失败
- 为什么在没有显式默认构造函数的情况下,将另一个结构封装在联合中作为成员的结构不能编译
- 当函数模板参数是具有默认参数的类模板时,函数模板参数的推导如何执行
- 初始化具有非默认构造函数的std::数组项的更好方法
- 何时提供默认参数作为模板参数
- 是默认情况下分配给char数组常量的值
- 具有默认值的引用获取函数
- 具有默认模板类型的默认构造函数的类型推导
- 在CMAKE中,如何以每个用户为基础更改构建类型的默认编译器标志
- 如何使用选项真、假、默认值和切换C++实现标志
- 覆盖来自 R 的C++编译标志的系统默认值
- QDialog - 更改默认标志以排除 ?按钮
- 将默认标志添加到 CLang++ 或 G++
- -std=c++11 编译器标志是否会在某个时候成为默认值
- CMake:取决于生成类型的默认标志
- wstringstream默认格式标志
- 如何在 gflags 中将默认值设置为标志文件
- 如何告诉默认的c++版本(没有显式标志)为我的编译器