cmake 在编译C++时,cppFlags 有那些属性可用呢?

33 阅读1分钟
  1. -D<DEFINE> :定义一个预处理器宏。例如,-DDEBUG 将定义一个名为 "DEBUG" 的宏。
  2. -I<INCLUDE_PATH>:指定额外的头文件搜索路径。可以使用该选项添加自定义的头文件目录。
  3. -std=<STANDARD>:指定要使用的 C++ 标准版本。例如,-std=c++11 或 -std=c++17
  4. -Wall:启用所有常见的警告。这将显示编译器中的大多数警告信息。
  5. -Werror:将警告视为错误,导致编译过程中的警告被视为失败。
  6. -O<LEVEL>:指定优化级别。常用的选项包括 -O0(无优化)、-O1(基本优化)、-O2(更高级别优化)和 -O3(最高级别优化)。
  7. -g:生成调试信息,以便进行调试。
  8. -fPIC:生成位置无关的代码,用于编译动态链接库(Shared Library)。
  9. -fno-exceptions:禁用异常处理支持。

example

  • 定义变量

externalNativeBuild {
    cmake {
        cppFlags "-std=c++11"
        cppFlags "-DVERSION_NUMBER=1.2.3"
    }
}
  • 使用变量


#define STRINGIFY(x) #x
#define VERSION_STRING STRINGIFY(VERSION_NUMBER)

const char* version = VERSION_STRING;