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

【C++】Visual Studio+CMake 开发 C++ 入门指南:从环境搭建到项目实战

▒ 目录 ▒

    • 🛫 导读
      • 为什么选择VS+CMake?
    • 1️⃣ 环境准备
      • 1.1 安装Visual Studio 2022
      • 1.2 验证CMake安装
    • 2️⃣ 第一个C++项目:Hello World
      • 2.1 创建项目结构
      • 2.2 编写代码文件
        • `src/main.cpp`(程序入口)
        • `CMakeLists.txt`(项目配置核心)
      • 2.3 用VS打开项目
    • 3️⃣ 编译与运行
      • 3.1 选择构建配置
      • 3.2 编译项目
      • 3.3 运行程序
    • 4️⃣ 调试程序
      • 4.1 设置断点
      • 4.2 启动调试
      • 4.3 结束调试
    • 5️⃣ 进阶:多文件项目与库链接
      • 5.1 新增源文件
      • 5.2 更新CMakeLists.txt
      • 5.3 链接系统库(以标准库为例)
    • 6️⃣ 常见问题与解决
    • 🛬 总结
    • 📖 参考资料

🛫 导读

为什么选择VS+CMake?

Visual Studio(简称VS)是微软推出的集成开发环境(IDE),以强大的调试功能、智能提示和可视化界面著称;CMake是跨平台的构建系统生成工具,通过CMakeLists.txt脚本描述项目结构,自动生成对应平台的构建文件(如VS的.sln、Linux的Makefile)。

两者结合的优势:

  • 跨平台兼容:同一套CMakeLists.txt可在Windows、Linux、macOS上生成对应构建文件;
  • 项目管理简化:无需手动维护VS解决方案,适合大型项目;
  • 标准化流程:符合现代C++开发规范,便于团队协作。

本文面向C++初学者,从零开始讲解如何用VS2022+CMake搭建开发环境、创建项目、编译运行及调试,覆盖基础语法与常见问题。

1️⃣ 环境准备

1.1 安装Visual Studio 2022

  1. 下载安装包:从VS官网下载社区版(Community,免费用于个人开发);
  2. 选择组件:安装时必须勾选以下组件(其他组件可选):
    • 工作负载:使用C++的桌面开发
    • 单个组件:CMake工具(在“开发工具”分类下)
    • 单个组件:MSVC v143 - VS 2022 C++ x64/x86 生成工具(确保编译器版本匹配)
  3. 完成安装:点击“安装”,等待进度完成后重启电脑。

1.2 验证CMake安装

VS安装时已捆绑CMake,无需单独下载。验证方法:

  1. 打开VS的“开发者命令提示符”(开始菜单搜索“x64 Native Tools Command Prompt for VS 2022”);

  2. 输入以下命令,若显示版本号则安装成功:

    > cmake --version  # 示例输出:cmake version 3.31.6-msvc6
    

2️⃣ 第一个C++项目:Hello World

2.1 创建项目结构

  1. 在本地创建项目文件夹(如D:\c01.CppCMakeDemo),并新建以下文件:

    CppCMakeDemo/
    ├─ src/                # 源代码目录
    │  └─ main.cpp         # 主程序文件
    └─ CMakeLists.txt      # CMake配置文件(核心)
    

2.2 编写代码文件

src/main.cpp(程序入口)
#include <iostream>int main() {// 输出Hello Worldstd::cout << "Hello, VS+CMake!" << std::endl;// 等待用户输入,避免控制台闪退system("pause");return 0;
}
CMakeLists.txt(项目配置核心)
# 1. 指定CMake最低版本(需与VS捆绑的CMake版本兼容)
cmake_minimum_required(VERSION 3.20)# 2. 项目名称(可自定义,对应VS解决方案名)
project(CppCMakeDemo)# 3. 设置C++标准(如C++17,根据需求调整)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)  # 强制启用指定标准# 4. 添加源文件(将src目录下的main.cpp添加到项目)
add_executable(${PROJECT_NAME}  # 可执行文件名(与项目名相同)src/main.cpp
)

2.3 用VS打开项目

  1. 打开Visual Studio 2022,点击“打开文件夹”(或菜单栏文件 → 打开 → 文件夹);
  2. 选择项目根目录D:\c01.CppCMakeDemo,VS会自动识别CMakeLists.txt并加载项目;
  3. 首次加载时,VS会在后台生成CMake缓存(底部状态栏显示“配置完成”即成功)。

3️⃣ 编译与运行

3.1 选择构建配置

VS顶部工具栏可切换构建模式:

  • Debug:调试模式(含调试信息,无优化,用于开发);
  • Release:发布模式(无调试信息,有优化,用于最终发布)。
    默认选择x64-Debug(64位调试模式)。

3.2 编译项目

  • 方法1:右键点击解决方案资源管理器中的CMakeLists.txt,选择“生成”;
  • 方法2:使用快捷键Ctrl+Shift+B
  • 方法3:点击工具栏“生成”按钮(▶️ 图标左侧)。
    编译成功后,输出窗口会显示“生成成功”,可执行文件生成在out\build\x64-Debug\CppCMakeDemo.exe

3.3 运行程序

  • 方法1:点击工具栏“本地Windows调试器”(▶️ 图标);

  • 方法2:在VS终端(视图 → 终端)中输入可执行文件路径:

    out\build\x64-Debug\CppCMakeDemo.exe
    

    运行成功后,控制台会显示Hello, VS+CMake!并暂停等待输入。

4️⃣ 调试程序

VS的调试功能是其核心优势,步骤如下:

4.1 设置断点

main.cpp的代码行左侧点击(或按F9),设置断点(红色圆点):

std::cout << "Hello, VS+CMake!" << std::endl;  // 在这行设置断点

4.2 启动调试

点击工具栏“本地Windows调试器”(或按F5),程序会在断点处暂停,此时可:

  • 查看变量:通过“自动窗口”“局部变量”窗口观察变量值;
  • 单步执行:
    • F10:单步跳过(不进入函数内部);
    • F11:单步执行(进入函数内部);
    • Shift+F11:跳出当前函数;
  • 监视表达式:在“监视”窗口输入变量或表达式(如std::cout),实时查看值。
    在这里插入图片描述

4.3 结束调试

Shift+F5停止调试,或点击调试工具栏的“停止”按钮。

5️⃣ 进阶:多文件项目与库链接

实际开发中项目会包含多个源文件和库,以下示例扩展项目结构:

5.1 新增源文件

创建src/math_utils.cppsrc/math_utils.h(自定义数学工具库):

// src/math_utils.h
#ifndef MATH_UTILS_H
#define MATH_UTILS_H// 加法函数声明
int add(int a, int b);#endif  // MATH_UTILS_H
// src/math_utils.cpp
#include "math_utils.h"// 加法函数实现
int add(int a, int b) {return a + b;
}

修改src/main.cpp调用自定义函数:

#include <iostream>
#include "math_utils.h"  // 引入自定义头文件int main() {int result = add(2, 3);std::cout << "2 + 3 = " << result << std::endl;  // 输出:2 + 3 = 5system("pause");return 0;
}

5.2 更新CMakeLists.txt

添加新源文件到项目:

cmake_minimum_required(VERSION 3.20)
project(CppCMakeDemo)set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)# 添加所有源文件(main.cpp和math_utils.cpp)
add_executable(${PROJECT_NAME}src/main.cppsrc/math_utils.cpp  # 新增源文件src/math_utils.h    # 头文件可选,添加后在VS中可见
)

5.3 链接系统库(以标准库为例)

若需使用系统库(如OpenGLBoost),通过target_link_libraries链接。例如链接标准数学库(Windows无需手动链接,Linux需添加m库):

# 在add_executable后添加
if(UNIX)target_link_libraries(${PROJECT_NAME} m)  # Linux链接数学库
endif()

6️⃣ 常见问题与解决

问题现象可能原因解决方法
提示“找不到CMakeLists.txt”未打开项目根目录确保VS打开的是包含CMakeLists.txt的文件夹
编译报错“无法打开源文件xxx.h”头文件路径错误CMakeLists.txt中通过include_directories(src)添加头文件目录
调试时控制台闪退程序执行完毕自动退出system("pause")或在调试配置中勾选“调试停止时自动关闭控制台”
CMake配置失败CMake版本不兼容降低cmake_minimum_required版本(如改为3.xx)
多文件编译冲突头文件未加防重复包含在头文件中添加#ifndef/#define/#endif保护(如5.1中的math_utils.h

🛬 总结

本文通过一个简单项目演示了VS+CMake开发C++的完整流程:

  1. 环境准备:安装VS2022并勾选CMake组件;
  2. 项目创建:编写main.cppCMakeLists.txt,用VS打开文件夹;
  3. 编译运行:通过VS工具栏或快捷键生成并执行程序;
  4. 调试:利用VS强大的断点和单步调试功能;
  5. 进阶:扩展多文件项目并链接库。

掌握这套工具链后,可轻松应对从简单程序到大型项目的开发需求。后续可深入学习CMake语法(如条件判断、循环、自定义编译选项)和VS的高级功能(如性能分析、单元测试)。

📖 参考资料

  • Visual Studio官方文档:CMake项目在VS中的使用
  • CMake官方教程:CMake入门
  • C++标准参考:cppreference.com
http://www.dtcms.com/a/403318.html

相关文章:

  • web3hardhat 框架实战-ERC20
  • Linux《线程同步和互斥(上)》
  • Hibernate批量操作详解及最优实践
  • 住房与建设部网站如何修改dns 快速使用境外网站
  • 【复习】计网每日一题--PPP链路
  • cpt和pretrain的差别,IFT和SFT的差别是怎么样的
  • RTX5060 Ti显卡安装cuda版本PyTorch踩坑记录
  • MongoDB数据类型与python操作
  • 脑电模型实战系:脑电模型进阶-构建一个高效的全连接网络
  • 东莞网站建设怎么收费展会布置效果图
  • 滕滕州网站建设住房和建设局官网
  • Vue调用本地EXE程序
  • Vue2 全局事件总线:通俗易懂 + 简单案例
  • Flask模板中使用Vue、ant-design-vue、@ant-design/icons-vue示例模板
  • 石狮建设局网站保定网站建设系统
  • vLLM PD分离推理服务配置指南
  • C++ 学习与 CLion 使用:(十五)多文件编程,和C语言一样的多文件编程
  • BEAT币
  • 淘宝的网站怎么做公司网站如何被收录
  • Ansible实现自动化运维
  • Zabbix7.4.8(三):通过Zabbix agent 2监控Docker相关指标
  • 小型个人网站制作网页打不开的原因及解决方法
  • Ansible 入门到实战:自动化运维的瑞士军刀
  • 嵌入式学习---(linux驱动)
  • k8s集群与gitlab registry连接
  • MySQL笔记---对表的操作
  • 【实战避坑】MySQL修改表字段长度完整指南:从语法、锁表机制到在线DDL详解
  • 乐峰网网站是谁做的海门住房和城乡建设局网站
  • 做公司简介的开源网站做网站推广前途
  • 了解学习Nginx反向代理与缓存功能