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

在 Windows 系统下配置 VSCode + CMake + Ninja 进行 C++ 或 Qt 创建

在 Windows 系统下配置 VSCode + CMake + Ninja 进行 C++ 或 Qt 开发,是一个轻量级但功能强大的开发环境。下面我将分步骤详细说明如何搭建这个开发环境,支持纯 C++ 和 Qt 项目。
在这里插入图片描述


? 所需工具安装

1. 安装 Visual Studio Code(VSCode)

可直接搜索安装:Extensions: Install Extension (Ctrl+Shift+X),输入关键词如 CMake, Qt, C/C++


2. 安装 CMake

cmake --version

3. 安装 Ninja

ninja --version

4. 安装编译器

方式一:MinGW-w64(推荐轻量级)
  • 下载地址(推荐使用 MSYS2 提供的版本):
    • https://sourceforge.net/projects/mingw-w64/files/ (这个官方链接提供的文件不能直接使用)
    • https://github.com/niXman/mingw-builds-binaries/releases
  • 安装后将其 bin 目录加入系统 PATH
  • 验证:
g++ --version
gcc --version
方式二:Visual Studio Build Tools(MSVC 编译器)
  • 官网下载:https://visualstudio.microsoft.com/downloads/#build-tools-for-visual-studio-2022
  • 安装时选择 “C++ 构建工具”
  • 需要使用 x64 Native Tools Command Prompt for VS 来调用编译器

5. 安装 Qt(仅用于 Qt 项目)

  • 下载在线安装器:https://www.qt.io/download
  • 推荐选择 Qt Online Installer
  • 安装时选择:
    • Qt 版本(如 Qt 6.5.x MinGW 11.2.0 64-bit)
    • Qt Creator(可选)
  • 安装完成后,确保 Qt 的 bin 路径加入系统 PATH(如 C:\Qt\Tools\mingw1120_64\bin

?️ 配置 VSCode + CMake + Ninja

1. 设置默认构建工具为 Ninja

打开 VSCode,按下 Ctrl+Shift+P,输入并运行:

CMake: Configure

选择你的编译器(例如 MinGW GCC x86_64),然后会自动生成 CMakeCache.txt 文件。

你也可以手动设置默认生成器,在 .vscode/settings.json 中添加:

{
"cmake.generator": "Ninja"
,
"cmake.configureOnOpen": true
,
"cmake.buildDirectory": "${workspaceFolder}/build"
}

2. 基础目录结构示例

my_project/
├── CMakeLists.txt
├── src/
│ └── main.cpp
├── build/ (CMake 生成文件)
└── .vscode/
├── settings.json
├── tasks.json
└── launch.json

3. 示例 CMakeLists.txt(C++ 项目)

cmake_minimum_required(VERSION 3.16)
project(MyApp)
set(CMAKE_CXX_STANDARD 20)
add_executable(myapp src/main.cpp)

4. 示例 CMakeLists.txt(Qt 项目)

cmake_minimum_required(VERSION 3.16)
project(QtApp)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUI ON)
find_package(Qt6 COMPONENTS Widgets REQUIRED)
add_executable(QtApp
src/main.cpp
src/mainwindow.cpp
src/mainwindow.h
src/mainwindow.ui
)
target_link_libraries(QtApp PRIVATE Qt6::Widgets)

5. 配置调试器(launch.json)

{
"version": "0.2.0"
,
"configurations": [
{
"name": "GDB Debug"
,
"type": "cppdbg"
,
"request": "launch"
,
"program": "${workspaceFolder}/build/myapp.exe"
,
"args": []
,
"stopAtEntry": false
,
"cwd": "${workspaceFolder}"
,
"environment": []
,
"externalConsole": true
,
"MIMode": "gdb"
,
"miDebuggerPath": "C:\\msys64\\mingw64\\bin\\gdb.exe"
}
]
}

6. 配置任务(tasks.json)

{
"tasks": [
{
"label": "CMake Configure"
,
"type": "shell"
,
"command": "cmake"
,
"args": ["-B"
, "${workspaceFolder}/build"
, "-G"
, "Ninja"]
,
"group": {
"kind": "build"
, "isDefault": true
}
,
"problemMatcher": ["$cmake"]
}
,
{
"label": "CMake Build"
,
"type": "shell"
,
"command": "cmake"
,
"args": ["--build"
, "${workspaceFolder}/build"]
,
"group": {
"kind": "build"
, "isDefault": true
}
,
"problemMatcher": ["$cmake"]
}
]
,
"version": "2.0.0"
}

✅ 使用流程总结

  1. 打开项目根目录(含 CMakeLists.txt);
  2. VSCode 会自动运行 CMake: Configure(根据 .vscode/settings.json);
  3. Ctrl+Shift+B 构建项目;
  4. F5 启动调试;
  5. 修改代码后重新构建即可运行新版本;

? 测试一个 Qt 项目(main.cpp)

#
include <QApplication>#include <QLabel>int main(int argc,char *argv[]) {QApplication app(argc, argv);QLabel label("Hello from Qt!");label.show();return app.exec();}

确保你的 mainwindow.ui.h.cpp 文件也存在并被正确引用。


? 小贴士

http://www.rkmt.cn/news/16534.html

相关文章:

  • UNION 与 UNION ALL 的区别 - 详解
  • 实用指南:第三十三天打卡复习
  • 排序综合
  • Java从入门到精通 - 常用API(一) - 详解
  • iTunes 无法备份 iPhone:10 种解决方法 - 详解
  • 关于调和级数估算前n项的和
  • 智慧决策的透明化路径:“空白金兰契”架构下的“悟空备案制”研究
  • 详细介绍:WIN11+VSCODE搭建c/c++开发环境
  • Windows 11 24H2 中文版、英文版 (x64、ARM64) 下载 (2025 年 9 月发布)
  • Marchenko理论
  • 深入解析:【RabbitMQ】- Channel和Delivery Tag机制
  • 调用百度AI接口实现网络图片中的文字识别
  • QT开发技术【ffmpeg + QAudioOutput】音乐播放器 - 指南
  • 实用指南:React 组件异常捕获机制详解
  • win11 为什么我的程序断网就转入导后台进程
  • 深入解析:AI与区块链:数据确权与模型共享的未来
  • 10.6阅读笔记
  • 牛客 周赛109 20250924
  • AirSim 安装过程记录 - zzh
  • 基于AXI模块的视频流传输(硬件连接篇)
  • 仿射密码
  • kubeadm续约k8s 1.23.14所有证书
  • 深入解析:AI破局:饿了么如何搅动即时零售江湖
  • [题解]P12008 【MX-X10-T4】[LSOT-4] Fragment of Memories
  • 2.Android Compose 基础系列:在 Kotlin 中创建和使用变量
  • AWS WebRTC:获取ICE服务地址(part 3):STUN服务和TURN服务的作用 - 实践
  • 完整教程:进阶配置与优化:配置 HTTPS 以确保数据安全传输
  • 微服务各个部分的作用 - 详解
  • 【算法深练】分组循环:“分”出条理,化繁为简 - 教程
  • java学习日记10.5