如何将宏变量通过cmake传入到源文件举个例子
时间: 2023-07-18 15:08:15 浏览: 253
可以通过使用CMake中的`add_compile_definitions`或`add_definitions`指令来定义宏变量并传递给源文件。例如,假设我们要定义一个名为`MY_DEFINITION`的宏变量并将其传递给`main.cpp`源文件,可以在CMakeLists.txt中添加以下代码:
```
cmake_minimum_required(VERSION 3.0)
project(MyProject)
# 定义宏变量
add_compile_definitions(MY_DEFINITION)
# 添加可执行文件并链接源文件
add_executable(MyExecutable main.cpp)
```
这样,在编译`MyExecutable`时,CMake会自动将`MY_DEFINITION`宏变量传递给`main.cpp`源文件。在`main.cpp`中,可以使用`#ifdef`或`#ifndef`宏指令来检查宏变量是否已定义。例如:
```
#include <iostream>
#ifdef MY_DEFINITION
#define MESSAGE "Hello World!"
#else
#define MESSAGE "Goodbye World!"
#endif
int main()
{
std::cout << MESSAGE << std::endl;
return 0;
}
```
如果`MY_DEFINITION`宏变量已定义,程序将输出`Hello World!`,否则将输出`Goodbye World!`。
阅读全文