
CMake 学习记录
5星
- 浏览量: 0
- 大小:None
- 文件类型:PDF
简介:
CMake 学习记录是一份详细的笔记集,涵盖了使用 CMake 构建跨平台软件项目的各种技巧和最佳实践。适合希望深入掌握 CMake 工具链的新手与进阶开发者。
最近开始学习工程代码中的CMake编译工具,并决定从零开始了解其工作原理。
首先介绍 `set` 指令。它用于设置变量值,例如:
```cmake
set(var hello)
```
这创建了一个名为 `var` 的变量并将其赋值为字符串 hello。在 CMakeLists.txt 文件中使用 `${var}` 会输出 hello 字符串。但实际上这只是构建过程的一部分内容;CMake 还会产生许多其他配置文件,用于管理整个编译流程。
接下来是 `CMAKE_C(XX)_FLAGS` 变量的说明:
- `CMAKE_C_FLAGS`: 存储传递给 C 编译器的各种选项,并应用于所有编译模式。
- 特定于某一种构建模式(如 Debug 或 Release)时,可以设置变量为:`CMAKE_C_FLAGS_<编译组态>`。
例如,在调试版本中可能使用 `-g -O0` 选项来生成调试信息和禁用优化;而在发布版本里,则会采用不同的配置,比如启用最高级的代码优化 (`-O3`) 和警告检查 (`-Wall`)。
CMake 提供了许多内置变量以帮助用户更好地控制构建过程:
1. `CMAKE_C_COMPILER`, `CMAKE_CXX_COMPILER`:指定 C 和 C++ 编译器的位置。
2. `EXECUTABLE_OUTPUT_PATH`, `LIBRARY_OUTPUT_PATH`: 定义可执行文件和库的输出路径。
3. `BUILD_SHARED_LIBS`: 控制构建共享库或静态库。
此外,还有一些非常有用的函数:
- `add_definitions`:全局添加预处理定义(如 `-DDEBUG`)以支持条件编译。
- `list` 函数集:用于操作列表数据类型。包括获取、追加和查找元素等功能。
- 环境变量访问器 (`ENV{ARM_ARCHITECTURE}`) 可用来检查系统属性,例如是否为 ARM 架构。
通过理解这些基础指令与概念,开发者可以更有效地使用 CMake 来配置复杂的项目构建流程。这不仅提高了开发效率还增强了对不同平台和需求的适应能力。
全部评论 (0)


