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

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.lryc.cn/news/626741.html

相关文章:

  • 查看磁盘占用情况和目录大小
  • 企业架构及战略价值
  • 如何让FastAPI任务系统在失败时自动告警并自我修复?
  • 从零实现自定义顺序表:万字详解 + 完整源码 + 图文分析
  • 从“怀疑作弊”到“实锤取证”:在线面试智能监考重塑招聘公信力
  • 河南萌新联赛2025第六场 - 郑州大学
  • 数据库优化提速(一)之进销存库存管理—仙盟创梦IDE
  • 开源模型应用落地-安全合规篇-深度合成隐式标识的技术实现(五)
  • 无人机感知系统详解
  • Tomcat 性能优化终极指南
  • C++ std::sort的应用总结
  • Vue2封装Axios
  • Google Chrome v139.0.7258.139 便携增强版
  • 嵌入式音频开发(3)- AudioService核心功能
  • 嵌入式开发学习———Linux环境下网络编程学习(四)
  • 04-认证授权服务开发指南
  • 读《精益数据分析》:规模化(Scale)—— 复制成功,进军新市场
  • Kafka如何保证消费确认与顺序消费?
  • Python爬虫实战:研究dark-fantasy,构建奇幻文学数据采集分析系统
  • GitHub宕机生存指南:从应急协作到高可用架构设计
  • BM25 vs TF-IDF:经典文本检索方法的对比
  • 《算法导论》第 34 章 - NP 完全性
  • RK Android14 新建分区恢复出厂设置分区数据不擦除及开机动画自定义(二)
  • 细说数仓中不同类型的维度
  • 哈希:字母异位词分组
  • Linux系统:C语言进程间通信信号(Signal)
  • 动态规划----6.单词拆分
  • Java 大视界 -- Java 大数据在智能医疗远程会诊数据管理与协同诊断优化中的应用(402)
  • C++---向下取整(>>)与向零取整(/)
  • WPF Alert弹框控件 - 完全使用指南