在CMake中添加编译宏(也被称为预处理器宏)通常是通过add_definitions命令实现的。这个命令可以添加编译器特定的参数,这些参数会被传递给C/C++预处理器,定义宏。
例如,如果你想要定义宏MY_MACRO,你可以在CMakeLists.txt文件中使用以下命令:
add_definitions(-DMY_MACRO)
然后,在你的C/C++源文件中,你可以使用#ifdef MY_MACRO来检测宏是否已经定义,并据此进行条件编译。
#ifdef MY_MACRO
// 如果MY_MACRO被定义,这里的代码会被编译进去
#endif
这是一个完整的示例:
CMakeLists.txt:
cmake_minimum_required(VERSION 3.0)
project(MyProject)
add_definitions(-DMY_MACRO)
添加源文件
add_executable(MyExecutable main.cpp)
main.cpp:
#include
#ifdef MY_MACRO
int main() {
std::cout << “MY_MACRO is defined!” << std::endl;
return 0;
}
#else
int main() {
std::cout << “MY_MACRO is not defined!” << std::endl;
return 0;
}
#endif
在这个例子中,当你编译MyExecutable时,MY_MACRO宏会被定义,因此程序会输出"MY_MACRO is defined!"。