2025年cmake入门教程(cmake 中文教程)

cmake入门教程(cmake 中文教程)我觉得针对这个问题最简单 但不是最正确的 的回答应该是 CMake 是服务于将源代 111 码转换成可执行的文件的工具 CMake 本身是一个工具集 由五个可执行的程序组成 cmake ctest cpack cmake gui 和 ccmake 其中 cmake 可以说是出镜率最高的明星级别程序了 它用于在构建项目的第一步 进行项目的配置 生成和构建项目的主要可执行文件的工作 其他的程序们 ctest 用于运行和报告测试结果的测试驱动程序 cpack 用来生成安装程序和源包的打包程序



我觉得针对这个问题最简单(但不是最正确的)的回答应该是:“CMake是服务于将源代111码转换成可执行的文件的工具”。

CMake本身是一个工具集,由五个可执行的程序组成:cmake、ctest、cpack、cmake-gui和ccmake,其中cmake可以说是出镜率最高的明星级别程序了,它用于在构建项目的第一步,进行项目的配置、生成和构建项目的主要可执行文件的工作。其他的程序们ctest用于运行和报告测试结果的测试驱动程序,cpack用来生成安装程序和源包的打包程序,cmake-gui是 cmake 的图形界面,ccmake(注意ccmake比cmake多了一个c)也是用于图形界面,与cmake-gui不同的地方在于ccmake是基于控制台(terminal)的图形界面。

CMake设计的出发点在于面向开发者,而开发者的工作流程基本是: 设计、编码和测试;理想情况下,这个过程应该从一个简单地按钮开始。在更改了代码之后,工具将以智能的、快速的、可扩展的方式,在不同的操作系统和环境中以相同的方式工作。支持多个集成开发环境(IDE) 和持续集成(CI) 流水,这些流水在更改提交到代码库后,就能对代码进行测试。为了寻求针对上述许多此类需求的一种答案,CMake便由此孕育而生。即是Cmake是抱着如此“崇高”的初衷隆重登场,但是很多接触CMake的初学者、技术人员和Cpp开发人员对其评价很不好甚至有些嗤之以鼻,确实,毋庸置疑的一点是使用CMake语言和工具要正确配置和使用源码需要一(ju)定(da)的工作量,但造成这些“操蛋”的爆肝工作量背后,并不是因为CMake 复杂,而是因为“自动化”的需求很复杂。抛开一切,单单就论“做出一个真正模块化的、功能强大的C++ 构建应用”以满足各种需求的难度,这个应该是很难吧?但是CMake 确实做到了(doge)。

构建软件是一个通用的过程:编译可执行程序和库、管理依赖关系、测试、安装、打包、生成文档和测试更多功能,当然了上述其中有一些步骤是可以跳过的,但至少我们需要使用CMake完成编译可执行程序。目前,CMake 的开发很活跃,并已成为C 和C++ 开发人员的行业标准。以自动化的方式构建代码的问题比CMake 出现的要早得多,所以会有很多选择:Make、Autotools、SCons、Ninja、Premake 等。但为什么CMake 可以后来居上呢?关于CMake,Rafał Świdziński持有以下几个重要观点:

• 专注于支持现代编译器和工具链。

• CMake 是真正的跨平台——支持Windows、Linux、macOS 和Cygwin 的构建。

• 为主流IDE 生成项目文件:Microsoft Visual Studio, Xcode 和Eclipse CDT。此外,也是其他项目的模型,如CLion。

• CMake 操作在合适的抽象级别上——允许将文件分组到可重用的目标和项目中。

• 有很多用CMake 构建的项目,其提供了一种简单的方法将它们包含到自己的项目中。

• CMake 将测试、打包和安装视为构建过程的固有组成。

• 弃用旧的、未使用的特性,从而保持CMake 的精简。CMake 提供了统一的、流线型的体验。不管是在IDE 中构建,还是直接从命令行构建,还照顾到构建后阶段。即使前面所有的环境都不同,持续集成/持续部署(CI/CD) 流水也可以轻松地使用相同的CMake 配置,并使用单一标准构建项目。

由于文章较长,详情可查看原文。

来源:微信公众号「3D视觉工坊」   


本文仅做学术分享,如有侵权,请联系删文。

3D视觉工坊精品课程官网:3dcver.com

1.面向自动驾驶领域的3D点云目标检测全栈学习路线!(单模态+多模态/数据+代码)

2.彻底搞透视觉三维重建:原理剖析、代码讲解、及优化改进

3.国内首个面向工业级实战的点云处理课程

4.激光-视觉-IMU-GPS融合SLAM算法梳理和代码讲解

5.彻底搞懂视觉-惯性SLAM:基于VINS-Fusion正式开课啦

6.彻底搞懂基于LOAM框架的3D激光SLAM: 源码剖析到算法优化

7.彻底剖析室内、室外激光SLAM关键算法原理、代码和实战(cartographer+LOAM +LIO-SAM)

8.从零搭建一套结构光3D重建系统[理论+源码+实践]

9.单目深度估计方法:算法梳理与代码实现

10.自动驾驶中的深度学习模型部署实战

11.相机模型与标定(单目+双目+鱼眼)

12.重磅!四旋翼飞行器:算法与实战

13.ROS2从入门到精通:理论与实战

14.国内首个3D缺陷检测教程:理论、源码与实战

15.基于Open3D的点云处理入门与实战教程

16.透彻理解视觉ORB-SLAM3:理论基础+代码解析+算法改进

17.不断更新中......

重磅!粉丝学习交流群已成立

交流群主要有3D视觉、CV&深度学习、SLAM、三维重建、点云后处理、自动驾驶、多传感器融合、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、ORB-SLAM系列源码交流、深度估计、TOF、求职交流等方向。

添加小助理微信(dddvisiona),一定要备注:研究方向+学校/公司+昵称,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,可快速通过且邀请进群。             

编程小号
上一篇 2025-03-28 18:06
下一篇 2025-02-10 10:27

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/57999.html