
基于 MSYS2 的 MinGW-w64 GCC 工具链与 CMake 构建系统,结合VSCode及其扩展插件( ms-vscode.cmake-tools),可实现高效的全流程C++开发调试。既可通过 VSCode 可视化界面(命令面板、状态栏按钮)便捷完成配置、编译与调试,也可借助命令行灵活控制构建过程。通过 VSCode 强大的扩展生态和智能化工具链,可视化交互、智能代码补全和AI代码生成等功能提高开发效率。
本文以第三方库(如spdlog)集成场景为例演示基本功能,通过合理的CMakeLists.txt配置,可支持复杂项目结构调试,支持断点设置与变量监视功能,实现从简单应用到模块化工程的编译调试管理,Linux+Windows 双重本地开发体验。 更多参考 《Windows 中的 Linux GCC开发工具链》 和 《现代 CMake 实战指南:从基础到进阶》
准备
- 安装 MSYS2 GCC 编译工具链
 - 安装 VSCode 及 CMake 插件
 - 下载 spdlog 到 temp 文件夹
 
            
            
              sh
              
              
            
          
          git clone https://github.com/gabime/spdlog.git
        目标
- 编译 spdlog 库 并安装到指定路径
 - 编译 spdlog 示例
 - vscode 中打断点进行可视化调试
 - 命令行方式实现
 
目录结构说明
D:/code/cpp 目录下:
            
            
              sh
              
              
            
          
          ├─.vscode
      └─settings.json # cmake 配置
├─build # cmake 编译生成的临时文件,可删除
├─temp # 第三方库,如 spdlog 源码
├─dist # 编译 spdlog 后安装路径
└─test # 用于 C++ 练习
    ├─helloworld
    └─spdlog # spdlog 示例
        ├─CMakeLists.txt
        └─example # spdlog 示例源码
        一、可视化方式
1. 编译 spdlog 库
- 修改 
settings.json指定源码、编译、安装路径。 
- 
等价于命令行
cmake -SD:/code/cpp/temp/spdlog -BD:/code/cpp/temp/spdlog/build。 - 
通过
cmake.installPrefix指定安装路径,等价于cmake --install . --prefix D:/code/cpp/dist/spdlogjson"cmake.sourceDirectory": "D:/code/cpp/temp/spdlog", "cmake.buildDirectory": "D:/code/cpp/temp/spdlog/build", "cmake.installPrefix": "D:/code/cpp/dist/spdlog", 
重新配置 cmake,清理缓存

配置输出:

- 选择编译类型 
--config Release 

- 执行编译,默认生成全部目标,可点击编辑按钮修改
 

- 编译输出
 

2. 安装 spdlog 到 cmake.installPrefix 设置的路径 dist/spdlog
点击运行任务后的按钮,选择 cmake --> cmake 安装任务,将编译结果放到 dist/spdlog。

3. 编译 spdlog example.cpp
- 复制 
spdlog根目录下 example 中的文件到test/spdlog。 

- 修改 
CMakeLists.txt, 指定 spdlog 库的安装路径, 让find_package(spdlog REQUIRED)可以找到其 cmake 依赖: 
            
            
              sh
              
              
            
          
          if(NOT DEFINED CMAKE_PREFIX_PATH)
    set(CMAKE_PREFIX_PATH "D:/code/cpp/dist" CACHE PATH "默认依赖路径")
endif()
        - 修改 
settings.json指定源码路径, 刷新缓存后,点击生成按钮,默认生成到D:/code/cpp/build/目录: 
            
            
              json
              
              
            
          
          "cmake.sourceDirectory": "D:/code/cpp/test/spdlog",
        生成及调试操作按钮:

4. 可视化调试
- 点击源码行号添加断点
 - 点击调试按钮开始调试, 左边可以查看调试信息、右上角有调试控制按钮,终端中可以查看输出。
 

二、命令行方式
- 
打开 MSYS2 Linux 命令行环境:
a.
Ctrl + Shift + P->Create New Terminal选择bash(MSYS2)b. 或点击终端右上角 + , 选择默认配置文件并选择,每次打开默认使用。

 - 
部分指令没有添加到系统环境变量,需要通过 绝对路径访问,也可修改添加到环境变量。可以参考前面的输出找到具体路径。
 - 
cmake 命令行编译 spdlog 示例,临时添加的简单第三方库可通过该方式快速编译安装。
 
            
            
              shell
              
              
            
          
          export PATH=$PATH:/c/msys64/ucrt64/bin # 临时添加环境变量 gcc
export PATH=$PATH:/f/vs/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/bin # cmake
cd D:/code/cpp/test/spdlog
cmake -S. -B./build -G "MinGW Makefiles"
cmake --build ./build
# cmake --install ./build --prefix /d/code/cpp/dist/test # 支持安装到指定目录
        cmake 依赖问题定位:通过 cmake -LAH 查看缓存变量,是否包含错误路径。

END
如果这篇文章对您有所帮助,欢迎点赞、分享和留言,让更多的人受益。感谢您的细心阅读,如果发现了任何错误或需要补充的地方,请随时告诉我,我会尽快处理 _