news 2026/10/22 8:12:07

CMake入门指南:5分钟创建你的第一个项目

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CMake入门指南:5分钟创建你的第一个项目

快速体验

  1. 打开 InsCode(快马)平台 https://www.inscode.net
  2. 输入框内输入如下内容:
请创建一个最简单的CMake项目示例,适合完全的新手学习。要求:1. 只有一个main.cpp文件;2. 使用C++11标准;3. 包含详细的注释解释每一行CMake命令的作用;4. 展示如何构建和运行这个项目;5. 提供常见问题的解决方法(如找不到编译器)。请用最简单易懂的语言解释CMake的基本概念和工作原理。
  1. 点击'项目生成'按钮,等待项目生成完整后预览效果

最近在学习C++项目构建工具CMake,发现很多新手朋友刚开始接触时容易一头雾水。今天就用最直白的方式,分享如何用5分钟创建一个最简单的CMake项目,顺便记录下我的学习心得。

  1. 理解CMake是什么CMake其实是个项目构建工具,它不直接编译代码,而是生成对应平台(比如Windows的Visual Studio或Linux的Makefile)的构建文件。就像是个"翻译官",把我们写的简单配置转换成不同平台能理解的构建指令。

  2. 准备最简单的项目结构我们先创建一个空文件夹,里面只需要两个文件:

  3. main.cpp(源代码文件)
  4. CMakeLists.txt(CMake配置文件)

  5. 编写main.cpp这个示例里我们写个超级简单的程序,就输出"Hello CMake!"。虽然简单,但包含了C++11的特性(比如auto关键字),方便后面演示标准设置。

  6. 重点:CMakeLists.txt详解这个文件是CMake的核心,我用注释逐行解释:

# 设置CMake最低版本要求(安全起见) cmake_minimum_required(VERSION 3.5) # 定义项目名称和使用的语言 project(MyFirstCMakeProject LANGUAGES CXX) # 设置C++标准为C++11 set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED ON) # 添加可执行文件,把main.cpp编译成my_program add_executable(my_program main.cpp)
  1. 构建和运行步骤

  2. 在项目文件夹打开终端

  3. 创建build文件夹:mkdir build
  4. 进入build:cd build
  5. 生成构建文件:cmake ..
  6. 编译项目:cmake --build .
  7. 运行程序:
  8. Linux/Mac: ./my_program
  9. Windows: .\my_program.exe

  10. 常见问题解决

  11. 找不到编译器:安装g++(Linux/Mac)或Visual Studio(Windows)
  12. 版本报错:更新CMake(官网下载最新版)
  13. 路径问题:确保在build文件夹内执行命令
  14. 修改代码后:需要重新执行build步骤

  15. 为什么这样配置

  16. 单独建build文件夹是为了保持源码干净(生成的文件全在build里)
  17. 设置C++11标准能确保使用现代C++特性
  18. 项目名称和可执行文件名称分开更灵活

  19. 进阶小技巧

  20. 可以用cmake -G "Unix Makefiles"指定生成器
  21. message()命令可以打印调试信息
  22. 推荐用target_include_directories管理头文件

最近发现InsCode(快马)平台对新手特别友好,不需要配置本地环境就能在线体验CMake项目。他们的编辑器直接内置了CMake支持,写完代码点一下就能看到运行结果,特别适合快速验证小demo。我试过把上面这个例子贴进去,连build步骤都自动完成了,对学习特别有帮助。

刚开始学CMake可能会觉得配置麻烦,但其实掌握基础用法后,你会发现它比直接写Makefile简单多了。建议从这种单文件项目开始,慢慢增加复杂度(比如加个头文件),循序渐进最有效。

快速体验

  1. 打开 InsCode(快马)平台 https://www.inscode.net
  2. 输入框内输入如下内容:
请创建一个最简单的CMake项目示例,适合完全的新手学习。要求:1. 只有一个main.cpp文件;2. 使用C++11标准;3. 包含详细的注释解释每一行CMake命令的作用;4. 展示如何构建和运行这个项目;5. 提供常见问题的解决方法(如找不到编译器)。请用最简单易懂的语言解释CMake的基本概念和工作原理。
  1. 点击'项目生成'按钮,等待项目生成完整后预览效果
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/21 12:37:32

企业知识管理系统:从价值定位到场景落地的全面解析

企业知识管理系统:从价值定位到场景落地的全面解析 【免费下载链接】chatwiki 开箱即用的基于企业私有知识库的LLM大语言模型的智能客服机器人问答系统,支持私有化部署,代码免费开源且可商用,由芝麻小客服官方推出。 项目地址: …

作者头像 李华
网站建设 2026/10/21 3:22:12

用AI快速验证二维码营销方案:从想法到落地仅1小时

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 构建一个营销型二维码原型系统,包含:1.动态内容切换(同一二维码显示不同内容) 2.A/B测试面板 3.点击热力图分析 4.简易CRM集成。要求使用Firebase实时数据库…

作者头像 李华
网站建设 2026/10/21 3:22:11

传统SIM vs eSIM开发:效率提升300%的秘诀

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个对比演示项目,展示传统SIM卡管理系统与eSIM系统的开发效率差异。要求:1. 传统系统部分:实现SIM卡库存管理、套餐绑定等基础功能&#x…

作者头像 李华
网站建设 2026/10/19 19:30:30

1小时验证创意:用Vue Admin快速搭建CRM原型

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 快速生成CRM系统原型,需要:1) 客户信息卡片式布局 2) 跟进时间轴组件 3) 销售漏斗可视化图表 4) 简易日历日程模块 5) 移动端适配。使用Vue3Naive UI&#…

作者头像 李华
网站建设 2026/10/21 20:47:03

蓝牙核心规格 5.3:功能增强(1)--周期性广播与加密密钥控制增强深度解析

1.0 周期性广播中的 AdvDataInfo(广告数据信息) 1.1 背景 1.1.1 扩展广播 低功耗蓝牙(BLE)具备扩展广播能力,它使用 ISM 频段的 37 个通用信道以及 3 个主广播信道进行广播通信。这种方式可以降低数据包碰撞的概率。 扩展广播有多种使用方式,其中一种就是周期性广播。…

作者头像 李华