C++高性能并行编程与优化 - 课件 - 11 现代 CMake 进阶指南
6.54 MB
166 页
0 评论
语言 | 格式 | 评分 |
---|---|---|
中文(简体) | .pptx | 3 |
摘要 | ||
文档阐述了现代CMake的进阶使用方法,重点介绍了如何正确设置C++标准版本。通过使用CMAKE_CXX_STANDARD和CMAKE_CXX_STANDARD_REQUIRED变量,可以避免直接添加-std=c++17等编译器选项带来的冲突和兼容性问题。文档还介绍了project指令的VERSION字段及其相关版本号变量,并强调了在project指令前设置C++标准变量的重要性。此外,文档提到了现代CMake与传统CMake的区别,讨论了CMake的变量与缓存机制,以及一些常用的变量如CMAKE_BUILD_TOOL、CMAKE_COMMAND等。 | ||
AI总结 | ||
《C++高性能并行编程与优化 - 现代 CMake 进阶指南》总结
一、项目初始化与版本控制
1. 使用 `project` 指令初始化项目,并通过 `VERSION` 字段设置项目版本号,例如 `project(项目名 VERSION x.y.z)`。
- 通过 `PROJECT_VERSION` 获取完整版本号。
- 可以进一步通过 `PROJECT_VERSION_MAJOR`、`PROJECT_VERSION_MINOR` 和 `PROJECT_VERSION_PATCH` 提取主版本号、次版本号和补丁版本号。
二、C++ 标准设置
1. 使用 `CMAKE_CXX_STANDARD` 变量设置 C++ 标准,例如设置为 17 表示使用 C++17。
2. `CMAKE_CXX_STANDARD_REQUIRED` 控制是否严格要求支持指定的 C++ 标准:
- `ON` 表示如果编译器不支持指定标准则报错。
- `OFF` 表示不支持时自动降级,例如从 C++17 降级到 C++14。
3. `CMAKE_CXX_EXTENSIONS` 控制是否启用编译器扩展功能(如 GCC 的非标准特性):
- 默认为 `ON`,建议在跨平台项目中设置为 `OFF` 以避免使用非标准特性。
三、常见误区与正确实践
1. **避免直接修改 `CMAKE_CXX_FLAGS`**:
- 不要手动添加 `-std=c++17`,因为 CMake 已经通过 `CMAKE_CXX_STANDARD` 提供了标准化设置方式。
- 直接修改 flags 会导致与 CMake 自动设置的 flags 冲突,且无法跨平台兼容(如 MSVC)。
四、CMake 的现代化使用
1. **现代 CMake 的优势**:
- 使用更便捷,功能更强大。
- 建议尽量使用 CMake 提供的变量和函数,而非直接手动配置。
五、其他 CMake 变量与功能
1. **构建工具与变量**:
- 如 `CMAKE_BUILD_TOOL`、`CMAKE_COMMAND` 等,用于控制构建过程和工具。
2. **变量与缓存**:
- CMake 会将检测结果缓存,重复运行时直接使用缓存值,提高效率。
六、结论
- 建议始终使用现代 CMake 的推荐方法,如通过 `CMAKE_CXX_STANDARD` 设置 C++ 标准。
- 在不确定的情况下,尽量使用引号引用变量内容,确保兼容性。 |
P1
P2
P3
P4
P5
P6
P7
下载文档到本地,方便使用
- 可预览页数已用完,剩余
159 页请下载阅读 -
文档评分