option 与 add_definitions 的用法
时间: 2023-12-10 20:40:05 浏览: 62
`option` 和 `add_definitions` 是 CMake 中用于配置编译选项和宏定义的两个命令。
`option` 用于定义一个布尔类型的选项,它的语法为:
```
option(<option_variable> "help string" [initial_value])
```
其中,`<option_variable>` 是定义的选项变量名,`"help string"` 是选项的帮助信息,`[initial_value]` 是选项的初始值。当我们使用 `cmake` 命令时,可以通过 `-D<option_variable>=ON/OFF` 来设置选项的值。
例如,我们可以通过下面的代码定义一个选项 `USE_MYLIB`:
```
option(USE_MYLIB "Use my own library" ON)
```
在 `CMakeLists.txt` 中使用 `if` 语句来根据选项的值来设置编译选项或者宏定义。
`add_definitions` 用于添加编译器宏定义,它的语法为:
```
add_definitions(-DFOO -DBAR=2)
```
其中,`-D` 参数用于定义宏,`FOO` 和 `BAR=2` 是宏的名称和值。这个命令会向编译器传递 `-DFOO` 和 `-DBAR=2` 选项,使得在编译过程中这些宏可以被预处理器识别。
例如,我们可以通过下面的代码添加一个宏定义:
```
add_definitions(-DENABLE_DEBUG)
```
在编译过程中,预处理器会将所有 `#define ENABLE_DEBUG` 替换为 `1`。