add_definitions(-std=c++14) set(CMAKE_CXX_STANDARD 14)
时间: 2024-05-18 19:15:39 浏览: 187
这段代码是用来设置C++编译器的标准版本为C++14,以便使用C++14新特性。
首先,使用add_definitions()命令向编译器添加一个预处理器定义,即将编译器标准设置为C++14。这样,在编译时,编译器就会使用C++14标准进行编译。
然后,使用set()命令设置CMAKE_CXX_STANDARD变量为14,以确保CMake也知道要使用C++14标准进行编译。
需要注意的是,使用这段代码前,需要确保使用的编译器支持C++14标准。如果编译器不支持C++14标准,则会编译失败。
相关问题
add_definitions(-DVERSION="${RTS_VERSION}")\
这段代码使用了 CMake 的 `add_definitions` 函数来添加编译选项。具体来说,它添加了一个定义命令,将 `VERSION` 宏定义为 `RTS_VERSION` 变量的值。
在 CMake 中,可以使用 `add_definitions` 函数来向编译器添加预处理器定义。该函数的参数是一个字符串,其中包含了要添加的编译选项。
在这个例子中,`-DVERSION="${RTS_VERSION}"` 是要添加的编译选项。其中,`-D` 表示定义一个宏,`VERSION` 是宏的名字,`${RTS_VERSION}` 是宏的值。
通过这个编译选项,我们可以在源代码中使用 `VERSION` 宏,并且它将被替换为 `RTS_VERSION` 变量的值。例如,在代码中可以这样使用:
```c
printf("Version: %s\n", VERSION);
```
在实际的编译过程中,编译器会将 `VERSION` 宏替换为 `RTS_VERSION` 变量的值,从而生成相应的代码。
通过使用 `add_definitions` 函数,可以在 CMake 构建过程中向编译器传递自定义的宏定义,从而实现一些动态的配置和控制。
cmake add_definitions(-D _LINUX)
`add_definitions(-D _LINUX)`与`add_definitions(-D LINUX)`的区别在于宏定义的名称不同。在这种情况下,它定义了一个名为`_LINUX`的宏。
这种用法中,下划线通常用于指示该宏是一个内部的或者是一个系统的宏。在标准C和C++中,以一个下划线开头的标识符是保留的,因此应该避免将它们用作自定义标识符的名称,以免发生冲突。
总的来说,`add_definitions(-D _LINUX)`与`add_definitions(-D LINUX)`的作用是相同的,都是定义一个宏。只是宏定义的名称不同,开发者可以根据自己的需要选择合适的名称。
阅读全文