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可以自动检测并高亮显示有效的代码块。

🏷️

标签

➡️

继续阅读