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

▒ 目录 ▒

    • [🛫 导读](#🛫 导读)
    • [1️⃣ 环境准备](#1️⃣ 环境准备)
      • [1.1 安装Visual Studio 2022](#1.1 安装Visual Studio 2022)
      • [1.2 验证CMake安装](#1.2 验证CMake安装)
    • [2️⃣ 第一个C++项目:Hello World](#2️⃣ 第一个C++项目:Hello World)
    • [3️⃣ 编译与运行](#3️⃣ 编译与运行)
      • [3.1 选择构建配置](#3.1 选择构建配置)
      • [3.2 编译项目](#3.2 编译项目)
      • [3.3 运行程序](#3.3 运行程序)
    • [4️⃣ 调试程序](#4️⃣ 调试程序)
      • [4.1 设置断点](#4.1 设置断点)
      • [4.2 启动调试](#4.2 启动调试)
      • [4.3 结束调试](#4.3 结束调试)
    • [5️⃣ 进阶:多文件项目与库链接](#5️⃣ 进阶:多文件项目与库链接)
      • [5.1 新增源文件](#5.1 新增源文件)
      • [5.2 更新CMakeLists.txt](#5.2 更新CMakeLists.txt)
      • [5.3 链接系统库(以标准库为例)](#5.3 链接系统库(以标准库为例))
    • [6️⃣ 常见问题与解决](#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. 输入以下命令,若显示版本号则安装成功:

    bash 复制代码
    > 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(程序入口)
cpp 复制代码
#include <iostream>

int main() {
    // 输出Hello World
    std::cout << "Hello, VS+CMake!" << std::endl;
    // 等待用户输入,避免控制台闪退
    system("pause");
    return 0;
}
CMakeLists.txt(项目配置核心)
cmake 复制代码
# 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终端(视图 → 终端)中输入可执行文件路径:

    bash 复制代码
    out\build\x64-Debug\CppCMakeDemo.exe

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

4️⃣ 调试程序

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

4.1 设置断点

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

cpp 复制代码
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(自定义数学工具库):

cpp 复制代码
// src/math_utils.h
#ifndef MATH_UTILS_H
#define MATH_UTILS_H

// 加法函数声明
int add(int a, int b);

#endif  // MATH_UTILS_H
cpp 复制代码
// src/math_utils.cpp
#include "math_utils.h"

// 加法函数实现
int add(int a, int b) {
    return a + b;
}

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

cpp 复制代码
#include <iostream>
#include "math_utils.h"  // 引入自定义头文件

int main() {
    int result = add(2, 3);
    std::cout << "2 + 3 = " << result << std::endl;  // 输出:2 + 3 = 5
    system("pause");
    return 0;
}

5.2 更新CMakeLists.txt

添加新源文件到项目:

cmake 复制代码
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.cpp
    src/math_utils.cpp  # 新增源文件
    src/math_utils.h    # 头文件可选,添加后在VS中可见
)

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

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

cmake 复制代码
# 在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的高级功能(如性能分析、单元测试)。

📖 参考资料

相关推荐
超级大只老咪2 小时前
数组(Java基础语法)
java·开发语言
tumu_C2 小时前
无用知识研究:用sfinae实现函数模板的overload [一]
开发语言·c++·算法
宛 禾2 小时前
list的学习
c++·学习
FFZero12 小时前
积加科技音视频一面
c++·科技·音视频
艾莉丝努力练剑3 小时前
【编码表 && STL】C++编程基石:从字符编码表到STL标准库的完整入门指南
java·linux·c++
工头阿乐3 小时前
Ubuntu 安装与使用C++ onnxruntime库
linux·c++·ubuntu
无挂写代码3 小时前
C++入门
开发语言·c++
努力努力再努力wz4 小时前
【C++进阶系列】:位图和布隆过滤器(附模拟实现的源码)
java·linux·运维·开发语言·数据结构·c++
_bong4 小时前
python基本程序要素
开发语言·python