新書推薦:

《
以她之见(阿尔芭·德·塞斯佩德斯是费兰特最爱的古巴女作家)
》
售價:NT$
403

《
中国丝绸艺术大系·美国大都会艺术博物馆卷(织绣)
》
售價:NT$
4998

《
食物药性学
》
售價:NT$
806

《
京剧男旦艺术发展史
》
售價:NT$
1010

《
京剧基础教程 : 京剧切末术语 : 汉英对照
》
售價:NT$
347

《
大模型Agent开发实践
》
售價:NT$
454

《
《四圣心源》入门精讲
》
售價:NT$
305

《
眼科医生的护眼妙招
》
售價:NT$
203
|
| 內容簡介: |
本书通过深入浅出的讲解和丰富的实践案例,帮助读者从零开始逐步掌握CMake的用法。具体而言,本书在介绍CMake的安装与环境配置的基础上,通过一个简单的案例帮助读者快速理解CMake的构建机制;然后通过实例解析CMake脚本语法、关键命令,并引出静态库与动态库、第三方库的构建方法;最后,本书还介绍了CTest和CPack在测试与打包分发中的强大功能,并展现了CMake在CI/CD中的应用。 本书从基础到进阶,构建了完整的CMake学习路径,既适合新手系统学习,也能帮助有经验的开发者解决工程实践中的复杂问题。
|
| 目錄:
|
第1章 学习CMake前的准备
1.1 CMake简介 001 1.2 CMake对集成开发环境的支持 004 1.3 CMake安装 011 1.4 CMake和Make介绍 018 1.5 其他的构建工具介绍 021 1.6 本章小结 023
第2章 初识CMake构建
2.1 基础实验环境搭建 025 2.2 传统构建HelloWorld的方式 026 2.3 CMake构建HelloWorld的方式 027 2.4 优化CMakeLists.txt文件 035 2.5 本章小结 049
第3章 CMake常用语法介绍
3.1 条件判断语法 050 3.2 循环 065 3.3 函数 070 3.4 本章小结 075
第4章 CMake字符串和文件处理
4.1 字符串处理 076 4.2 文件处理 081 4.3 本章小结 105
第5章 项目的构建
5.1 内部构建和外部构建 107 5.2 建立HelloWorld项目 109 5.3 安装HelloWorld项目 112 5.4 生成Debug或Release版本 123 5.5 控制构建过程 125 5.6 本章小结 127
第6章 库的构建
6.1 理解静态库和动态共享库 128 6.2 使用g++传统方式构建静态库和动态库 130 6.3 Linux下构建静态库 133 6.4 Linux下构建动态共享库 142 6.5 Windows下构建静态或动态共享库 143 6.6 本章小结 146
第7章 构建第三方库
7.1 find_package()命令工作过程 147 7.2 模块模式(Module mode) 149 7.3 配置模式(Config mode) 158 7.4 使用FetchContent管理依赖 167 7.5 使用ExternalProject管理外部项目 171 7.6 本章小结 174
第8章 使用CMake进行测试和打包
8.1 自动化测试:CTest 175 8.2 打包和分发工具:CPack 183 8.3 本章小结 187
第9章 CMake与CI/CD的集成
9.1 CI/CD概述 189 9.2 在GitHub Actions中使用CMake 190 9.3 在GitLab CI中使用CMake 195 9.4 在Jenkins中使用CMake 201 9.5 本章小结 207
附录
附录1:CMake常用命令汇总 209 附录2:CMake常用的内置变量 231
|
| 內容試閱:
|
时光荏苒,回首十余年的职业生涯,笔者曾在开发、运维、培训讲师等不同角色间切换,每一段经历都如同一块拼图,拼凑出我对技术的热爱与追求。无论是出于工作所需,还是内心对编程世界的无尽好奇,我始终乐于钻研新的领域,将学到的知识化为视频或文字,与更多人分享。 最初接触CMake,是在独立开发一款C/C++游戏时,为了实现产品跨平台运行,我不得不硬着头皮学习这个陌生的构建系统。那段日子充满了挑战——编译配置的反复失败、依赖管理的混乱无序、脚本调试的焦头烂额,让我几近崩溃。然而,当游戏最终上线Steam并收获回报时,我才意识到,与CMake的“斗智斗勇”不仅是一场磨砺,更是一次成长的契机。 本书的写作初衷,正是源于我对CMake的复杂情感——既爱其强大,又深知其“槽点”。我深信,许多开发者都曾被类似的构建难题困扰:跨平台适配的繁琐、库文件管理的混乱、测试流程的缺失。这些问题看似琐碎,却足以拖慢开发进度。于是,我将自己的经验与教训凝结成书,力求以最直白的方式,带领读者从零开始掌握CMake。 本书共设9章,从环境搭建与基础入门,到项目构建与库文件管理,再到测试与打包的完整流程,每一章都配以详尽的实例与步骤,确保理论与实践无缝衔接。以下是各章的主要内容。 第1章介绍CMake的背景、安装以及不同开发环境的配置。 第2章通过一个简单的“HelloWorld”程序,快速展示CMake的基本使用流程,帮助读者迅速上手。 第3章介绍CMake脚本的核心语法,包括变量定义、条件语句、循环控制和常用命令等,帮助读者掌握脚本编写的核心技能。 第4章深入讲解string()和file()命令,通过掌握这些命令,开发者能够高效地处理文本数据和文件相关任务,提升构建过程的灵活性和自动化程度。 第5章以一个完整的项目为例,讲解如何组织源代码、设置构建目标,并生成可执行文件。 第6章探讨使用CMake创建和管理静态库与动态库,揭示库文件在项目中的实际应用。 第7章聚焦于第三方库的集成,详细说明如何引入外部依赖并解决常见问题,提升项目的可扩展性。 第8章分述CTest和CPack的自动化测试应用和打包方法,为项目交付提供高效支持。 第9章介绍CMake与GitHub Actions、GitLab CI以及和Jenkins在CI/CD方面的应用。 通过对本书的学习,读者将掌握通过CMakeLists.txt文件高效组织复杂项目,优化构建流程的方法,从而从容应对小型项目,乃至复杂工程中的构建需求。书中注重实践与理论结合,每章都配有详细的代码示例和步骤说明,确保读者能够边学边练,快速将知识转化为实际能力。书后还提供了常用命令的参数说明,便于读者查阅。 在历史的长河中,本书或许只是昙花一现。且由于AI工具的出现,很多问题似乎正变得有迹可循。但我仍希望,本书能如同一缕微弱却温暖的烛光,为每一位在CMake构建迷雾中摸索学习的读者带来启发与便利。技术之路漫漫,唯有不断探索与实践,方能走得更远。 由于笔者水平有限,书中难免存在不足之处,还望广大读者批评指正。
编著者
|
|