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

cmake 是编译器吗

不是的,CMake 不是编译器,这是很多初学者容易搞混的地方。我们仔细分清楚:


一、CMake 是什么?

CMake 是“生成编译流程的工具”
它的工作是:告诉编译器和构建工具(make / ninja)应该怎么编译你的代码

换句话说:

  • CMake = 编译说明书生成器
  • 实际编译工作 = 编译器(g++, gcc, clang)干的

二、CMake 与编译器的关系

CMakeLists.txt (规则说明书) ↓ CMake ↓ Makefile / Ninja ↓ 编译器 g++ / gcc ↓ 可执行文件 / 库
  • CMake:生成 Makefile 或 Ninja 文件(告诉 g++ 该编译哪些文件,哪些依赖)
  • g++ / gcc:真正把.cpp变成.o,再链接成可执行文件
  • Make / Ninja:根据 Makefile 或 Ninja 文件,按顺序调用编译器完成整个构建

三、举例类比(Java / Python)

语言工具干什么
C++CMake生成编译流程
g++真正编译代码
JavaMaven生成编译/打包流程
javac真正编译代码
Pythonsetup.py生成打包流程
Python 解释器执行代码 / 打包

💡 核心:CMake 只负责“计划”,不干活


四、用生活类比

  • CMake = 厨师的菜谱
  • 编译器 g++ = 厨师本人
  • 最终可执行文件 = 做好的菜

你手上有菜谱(CMake),但不动手(g++ 编译),菜是做不出来的。


如果你愿意,我可以画一张0基础版“CMake 编译器流程图”
让你一眼就能看懂 CMake、g++、Make 之间的关系。

你想让我画吗?

http://www.zskr.cn/news/178159.html

相关文章:

  • PyTorch-CUDA镜像启动时初始化脚本执行
  • Markdown task lists待办事项跟踪PyTorch开发进度
  • SSH MaxSessions限制并发会话保护PyTorch服务器
  • PyTorch-CUDA-v2.8镜像对Faster R-CNN的训练加速
  • Markdown header ids为标题添加唯一标识
  • BRAM在FPGA原型验证中的作用:全面讲解
  • 基于SpringBoot+Vue的西安旅游系统管理系统设计与实现【Java+MySQL+MyBatis完整源码】
  • 工业控制中Vivado许可证的部署:实战案例解析
  • Jupyter Notebook %colors切换配色方案
  • 双极性晶体管驱动蜂鸣器电路:无源模式操作指南
  • 高边驱动电路中MOSFET米勒效应抑制策略
  • PyTorch-CUDA镜像用户权限最小化原则
  • MOSFET体二极管作用解析:电路设计必知
  • Docker system df查看PyTorch镜像磁盘占用
  • FPGA验证平台中BRAM容量规划方法论:系统学习
  • PyTorch DataLoader prefetch_factor调优
  • Markdown Footnote脚注用法:补充说明技术细节
  • PyTorch-CUDA镜像启动脚本自定义初始化行为
  • PyTorch TensorBoard集成可视化训练过程
  • github gist分享代码片段:适用于PyTorch-CUDA-v2.8的小技巧
  • PyTorch模型量化压缩减小部署体积
  • Git下载大模型权重慢?结合国内镜像加速PyTorch加载
  • 我为“Read the Docs”流量分析构建了一个可重复使用的仪表板,使用了 Vizro-AI
  • 基于NVIDIA显卡的PyTorch环境搭建:CUDA-v2.7镜像适配全解析
  • GitHub Sponsors支持开发者:赞助PyTorch开源贡献者
  • Markdown TOC自动生成技术文档目录结构
  • 【2025最新】基于SpringBoot+Vue的停车场管理系统管理系统源码+MyBatis+MySQL
  • 手把手教你设计基于三极管的线性放大电路
  • jupyter notebook插件推荐:提升PyTorch-CUDA-v2.8开发效率
  • Markdown撰写技术报告:嵌入PyTorch训练曲线图表