当前位置: 首页 > web >正文

CMake1:概述

参考链接:

爱编程的大丙 | CMake教程
CMakeLists指令以及常用方法

一个C/C++代码项目的构建流程是:

  1. 源文件:包括.cpp、.c、.cc等后缀的C/C++源文件。
  2. 预处理器:处理所有#开头的预处理指令,展开#include头文件,替换宏定义,移除注释,处理条件编译,生成预处理后的源文件。
  3. 编译器:将预处理后的源代码转换为汇编语言代码(.s或.asm文件),期间进行语法检查、语义分析和代码优化,C语言用gcc,C++用g++等。
  4. 汇编器:将汇编代码转换为机器语言指令,生成目标文件(Windows下为.obj,Linux下为.o等),目标文件为二进制格式但不可直接执行。
  5. 链接器:将多个目标文件及所需库文件链接,解决符号引用,最终生成可执行文件(Windows下为.exe,Linux下通常无后缀等)。

CMake 是一个项目构建工具,并且是跨平台的。关于项目构建我们所熟知的还有Makefile(通过 make 命令进行项目的构建),大多是IDE软件都集成了make,比如:VS 的 nmake、linux 下的 GNU make、Qt 的 qmake等,如果自己动手写 makefile,会发现,makefile 通常依赖于当前的编译平台,而且编写 makefile 的工作量比较大,解决依赖关系时也容易出错。

而 CMake 恰好能解决上述问题, 其允许开发者指定整个工程的编译流程,在根据编译平台,自动生成本地化的Makefile和工程文件,最后用户只需make编译即可,所以可以把CMake看成一款自动生成 Makefile的工具,其流程图如下:
在这里插入图片描述

  • 蓝色虚线表示使用makefile构建项目的过程
  • 红色实线表示使用cmake构建项目的过程

CMake 允许开发者指定整个工程的编译流程,在根据编译平台,自动生成本地化的Makefile和工程文件,最后用户只需 make 编译即可,所以可以把 CMake 看成一款自动生成 Makefile 的工具。

http://www.xdnf.cn/news/18437.html

相关文章:

  • 通过自动化本地计算磁盘与块存储卷加密保护数据安全
  • 前端-JavaScript笔记(核心语法)
  • CentOS 系统 Java 开发测试环境搭建手册
  • C/C++嵌入式笔试核心考点精解
  • Kafka如何保证「消息不丢失」,「顺序传输」,「不重复消费」,以及为什么会发生重平衡(reblanace)
  • SpringWeb详解
  • Java FTPClient详解:高效文件传输指南
  • CSS3DRenderer+ CSS3DObject实现在 Three.js 中添加文本内容
  • Preprocessing Model in MPC 2 - 背景、基础原语和Beaver三元组
  • Java 学习笔记(基础篇6)
  • 分布式唯一 ID 生成方案
  • leetcode 3 无重复字符的最长子串
  • 将集合拆分成若干个batch,并将batch存于新的集合
  • C语言第十章内存函数
  • C语言:第18天笔记
  • 【自记】Power BI 中 ALLNOBLANKROW的适用场景举例
  • 疏老师-python训练营-day51复习日+退款开始
  • 计算机网络技术学习-day4《路由器配置》
  • SQL 中大于小于号的表示方法总结
  • 微软宣布开源大模型gpt-oss在Azure平台实现性能突破
  • Git 新手完全指南(二):在vscode中使用git
  • 官网SSO登录系统的企业架构设计全过程
  • UNet改进(33):基于CBAM原理与PyTorch实战指南
  • Ubuntu 上安装 MongoDB
  • Hyperledger Fabric官方中文教程-改进笔记(十三)-使用测试网络创建通道
  • iOS 应用迭代与上架节奏管理 从测试包到正式发布的全流程实践
  • Scikit-learn 预处理函数分类详解
  • 阶跃星辰 StepFun 入驻 GitCode 平台,带来工业级 AI 体验
  • 密码加密算法和JWT无状态认证
  • [系统架构设计师]面向服务架构设计理论与实践(十五)