Logo
☆☆☆☆☆
0.0
Beginner
37h

现代CMake用于C++

构建生产级别的软件并非易事。开发者常面临缺乏清晰指导方针的问题,难以设计出高效且优雅的解决方案。本课程为学习者提供从头到尾的实践体验,帮助你以系统化的方式开发C++项目。 你将从如何在项目中使用CMake开始,接着学习自动化复杂任务的方法,包括构建、测试和打包。然后,你将掌握如何组织源代码目录,以及如何定义构建目标和发布包。课程结束时,你将了解可执行文件和库的编译与链接过程,理解这些步骤的具体工作原理,并学会优化整个流程以获得最佳效果。 完成本课程后,你将能够熟练运用CMake及其相关工具来构建、打包和测试C++项目。同时,你也能基于项目需求,做出合理的工具选择决策,用于配置、测试及报告项目结果。

15 Lessons
Included in Subscription Plan
Personalized Learning
Powered by AI
现代CMake用于C++
构建生产级别的软件并非易事。开发者常面临缺乏清晰指导方针的问题,难以设计出高效且优雅的解决方案。本课程为学习者提供从头到尾的实践体验,帮助你以系统化的方式开发C++项目。 你将从如何在项目中使用CMake开始,接着学习自动化复杂任务的方法,包括构建、测试和打包。然后,你将掌握如何组织源代码目录,以...

WHAT YOU'LL LEARN

对软件构建过程各步骤的深入理解

Content

15 Lessons • 0 Quizzes • 0 Challenges

课程简介
  1. 1

    入门

CMake 的入门步骤
  1. 1

    简介

  2. 2

    理解基础知识

  3. 3

    CMake 工具

  4. 4

    CMake 命令:生成项目构建系统

  5. 5

    CMake 命令:构建项目

  6. 6

    CMake 命令:其他操作

  7. 7

    其他 CMake 工具

  8. 8

    浏览项目文件:目录结构与缓存变量

  9. 9

    浏览项目文件:配置文件与预设

  10. 10

    发现脚本和模块

  11. 11

    章节总结

使用 CMake 管理依赖项
  1. 1

    简介

  2. 2

    如何查找已安装的包

  3. 3

    如何查找已安装的包(二)

  4. 4

    使用 FindPkgConfig 查找旧版包

  5. 5

    编写我们自己的 Find-模块

  6. 6

    使用 Git 仓库:子模块

  7. 7

    克隆不使用 Git 的项目的依赖项

  8. 8

    使用外部项目模块

  9. 9

    使用 FetchContent 模块

  10. 10

    章节总结

CMake 语言
  1. 1

    简介

  2. 2

    CMake 语言语法

  3. 3

    使用变量

  4. 4

    变量作用域与列表

  5. 5

    条件语句

  6. 6

    比较运算符和简单判断

  7. 7

    循环

  8. 8

    命令定义:宏

  9. 9

    命令定义:函数

  10. 10

    命名规范

  11. 11

    有用的命令

  12. 12

    章节总结

测试框架
  1. 1

    简介

  2. 2

    为什么自动化测试值得投入?

  3. 3

    使用 CTest 统一 CMake 中的测试流程

  4. 4

    为 CTest 创建最基本的单元测试

  5. 5

    为测试而组织我们的项目

  6. 6

    单元测试框架:Catch2

  7. 7

    单元测试框架:GTest

  8. 8

    Mock 框架:GMock

  9. 9

    生成测试覆盖率报告

  10. 10

    章节总结

设置我们的第一个 CMake 项目
  1. 1

    简介

  2. 2

    基本指令和命令

  3. 3

    项目划分

  4. 4

    作用域子目录

  5. 5

    考虑项目结构

  6. 6

    环境的作用域

  7. 7

    配置工具链

  8. 8

    过程间优化

  9. 9

    禁用源码目录构建

  10. 10

    章节总结

程序分析工具
  1. 1

    简介

  2. 2

    强制格式化

  3. 3

    使用静态检查工具

  4. 4

    静态检查工具简介

  5. 5

    使用 Valgrind 进行动态分析:Memcheck

  6. 6

    使用 Valgrind 进行动态分析:Memcheck 检测

  7. 7

    章节总结

使用目标
  1. 1

    简介

  2. 2

    目标的概念

  3. 3

    目标属性

  4. 4

    伪目标

  5. 5

    编写自定义命令

  6. 6

    理解生成器表达式

  7. 7

    评估类型

  8. 8

    可以尝试的示例

  9. 9

    章节总结

生成文档
  1. 1

    简介

  2. 2

    将 Doxygen 添加到我们的项目中

  3. 3

    使用现代风格生成文档

  4. 4

    章节总结

使用 CMake 编译 C++ 源文件
  1. 1

    简介

  2. 2

    编译的基本原理

  3. 3

    预处理器配置:定义

  4. 4

    预处理器配置:头文件

  5. 5

    优化器配置:通用级别

  6. 6

    优化器配置:函数级和循环级

  7. 7

    编译过程的管理

  8. 8

    发现错误

  9. 9

    章节总结

安装与打包
  1. 1

    简介

  2. 2

    无需安装即可导出

  3. 3

    将项目安装到系统中

  4. 4

    安装逻辑目标

  5. 5

    低级安装

  6. 6

    处理整个目录

  7. 7

    安装过程中调用脚本

  8. 8

    创建可重用的包

  9. 9

    创建和管理配置文件

  10. 10

    生成包版本文件

  11. 11

    定义组件

  12. 12

    使用 CPack 打包

  13. 13

    章节总结

使用 CMake 进行链接
  1. 1

    简介

  2. 2

    掌握链接的基础知识

  3. 3

    构建不同类型的库

  4. 4

    使用单一定义规则解决问题

  5. 5

    重复的命名空间与动态链接的符号

  6. 6

    链接的顺序与未解析的符号

  7. 7

    将 main() 函数分离用于测试

  8. 8

    章节总结

创建我们的专业项目
  1. 1

    简介

  2. 2

    规划我们的工作

  3. 3

    项目结构

  4. 4

    构建和管理依赖项

  5. 5

    测试与程序分析

  6. 6

    安装与打包

  7. 7

    提供文档

  8. 8

    挑战:创建我们的专业项目

  9. 9

    解决方案:创建我们的专业项目

结论
  1. 1

    课程总结

附录
  1. 1

    安装 CMake

  2. 2

    其他命令

  3. 3

    string() 命令

  4. 4

    list() 命令

  5. 5

    file() 命令

  6. 6

    math() 命令

Certificate of Completion

Showcase your accomplishment by sharing your certificate of completion.

Course Author:Anonymous User

Reviews

Read reviews from students who have taken this course and share your own experience.

Reviews & Comments (0)