Cmake
2025
真实项目中遇到一个典型场景:第三方 SDK 默认打开了一个非常重的功能开关,导致全量构建时间暴涨 70%。记录一下用最 Modern 的方式彻底接管它的全过程。
彻底搞懂 CMakeCache.txt、-D 参数、option()、set(... CACHE ...)、FORCE、GUI 显示顺序的底层原理,以及大厂真实落地的防御性写法。
说明:
CMake;条件编译;if;生成器表达式;变量作用域;缓存变量;目录作用域;函数作用域;option()
在CMake中,include_directories()和target_include_directories()都用于指定头文件搜索路径,但它们在作用范围和使用方法上有显著区别。现代CMake项目建议优先使用target_include_directories()。
2024
如果你维护着一个历史悠久或规模庞大的 C/C++ 项目,你很可能在顶层 CMakeLists.txt 中见到过像 add_definitions 或 include_directories 这样的命令。