CMAKE 加入編譯選項 add_definitions 定義巨集
原文中文,约1900字,阅读约需5分钟。
📝
内容提要
CMake中的add_definitions和add_compile_definitions用于定义编译时宏。add_definitions在CMake 3.11及之前版本使用,但不推荐;add_compile_definitions在CMake 3.12及之后版本推荐使用。通过设置c_cpp_properties.json,VS Code可以识别头文件并高亮有效代码。示例中,定义宏HELLO后,编译时会输出特定内容。
❓
Q&A
CMake中如何定义编译时宏?
可以使用add_definitions或add_compile_definitions指令来定义编译时宏。
add_definitions和add_compile_definitions有什么区别?
add_definitions在CMake 3.11及之前版本使用,但不推荐;add_compile_definitions在CMake 3.12及之后版本推荐使用,且更直观。
如何在VS Code中设置以识别头文件?
需要在c_cpp_properties.json中添加includePath指定路径,以避免出现红色波浪。
如何使用CMake编译时宏的示例?
在CMakeLists.txt中使用add_definitions定义宏HELLO,然后在main.cpp中使用#ifdef来判断是否定义了该宏。
为什么不推荐使用add_definitions?
因为add_definitions会影响整个项目的所有目标,而不仅仅是特定目标。
如何让VS Code自动高亮显示有效代码?
通过cmake toolchain生成的compile_commands.json文件,VS Code可以自动检测并高亮显示有效的代码块。
🏷️