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

Windows下使用 VS Code + g++ 开发 Qt GUI 项目的完整指南

🚀 使用 VS Code + g++ 开发 Qt GUI 项目的完整指南(Windows + MSYS2)

本指南帮助你在 Windows 下使用 VS Code + g++ + CMake + Qt6 快速搭建 Qt GUI 项目,适合熟悉 Visual Studio 的开发者向跨平台 VS Code 工具链迁移。


🛠️ 一、环境准备

1. 安装 MSYS2

  • 官网:https://www.msys2.org
  • 初始化更新(MSYS2 MSYS 终端):
    pacman -Syu
    

2. 安装 Qt 和工具链(在 MinGW64 终端中):

pacman -S \mingw-w64-x86_64-toolchain \mingw-w64-x86_64-cmake \mingw-w64-x86_64-ninja \mingw-w64-x86_64-qt6-base \mingw-w64-x86_64-qt6-tools \mingw-w64-x86_64-qt6-declarative \mingw-w64-x86_64-qt6-svg \mingw-w64-x86_64-qt6-shadertools \mingw-w64-x86_64-qt6-multimedia \mingw-w64-x86_64-qt6-translations

📁 二、项目目录结构

QtGuiApp/
│
├── .vscode/
│   ├── c_cpp_properties.json     # IntelliSense
│   ├── tasks.json                # 构建任务
│   ├── launch.json               # 调试配置
│
├── build/                        # 构建输出目录
├── CMakeLists.txt                # CMake 配置
├── main.cpp                      # 主程序
├── mainwindow.cpp / .h / .ui     # Qt 主窗口

⚙️ 三、CMake 配置 CMakeLists.txt

cmake_minimum_required(VERSION 3.16)
project(QtGuiApp LANGUAGES CXX)set(CMAKE_CXX_STANDARD 17)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTORCC ON)find_package(Qt6 REQUIRED COMPONENTS Widgets)add_executable(QtGuiAppmain.cppmainwindow.cppmainwindow.hmainwindow.ui
)target_link_libraries(QtGuiApp PRIVATE Qt6::Widgets)

💡 四、VS Code 配置

1. IntelliSense .vscode/c_cpp_properties.json

{"configurations": [{"name": "Win32","includePath": ["${workspaceFolder}/**","C:/msys64/mingw64/include","C:/msys64/mingw64/include/c++/14.2.0","C:/msys64/mingw64/include/c++/14.2.0/x86_64-w64-mingw32","C:/msys64/mingw64/include/Qt6","C:/msys64/mingw64/include/Qt6/QtWidgets","C:/msys64/mingw64/include/Qt6/QtCore"],"defines": ["_DEBUG", "UNICODE"],"compilerPath": "C:/msys64/mingw64/bin/g++.exe","cStandard": "c17","cppStandard": "c++17","intelliSenseMode": "windows-gcc-x64"}],"version": 4
}

2. 构建与运行任务 .vscode/tasks.json

{"version": "2.0.0","tasks": [{"label": "CMake Configure","type": "shell","command": "cmake -S . -B build -G Ninja","group": "build"},{"label": "CMake Build","type": "shell","command": "cmake --build build","group": "build","dependsOn": ["CMake Configure"]},{"label": "Run Executable","type": "shell","command": ".\\build\\QtGuiApp.exe","group": {"kind": "test","isDefault": true},"dependsOn": ["CMake Build"]}]
}

3. 调试配置 .vscode/launch.json

{"version": "0.2.0","configurations": [{"name": "Debug Qt App","type": "cppdbg","request": "launch","program": "${workspaceFolder}/build/QtGuiApp.exe","args": [],"stopAtEntry": false,"cwd": "${workspaceFolder}/build","environment": [],"externalConsole": false,"MIMode": "gdb","miDebuggerPath": "C:/msys64/mingw64/bin/gdb.exe","setupCommands": [{"description": "Enable pretty-printing","text": "-enable-pretty-printing","ignoreFailures": true}]}]
}

📦 五、使用 windeployqt 打包 Qt GUI 应用

在 MSYS2 MinGW64 终端中,使用以下命令将 Qt 依赖复制到可执行文件目录:

cd build
windeployqt QtGuiApp.exe

该命令会自动将 Qt DLL、平台插件、SVG 模块等复制至当前目录,生成可独立运行的 .exe 包。


🔍 六、Visual Studio 与 VS Code 使用差异对比

特性Visual StudioVS Code + g++ + CMake
工程结构.sln, .vcxproj 图形化工程CMakeLists.txt 构建系统
编译器MSVCg++ (MinGW64 from MSYS2)
构建方式菜单或按钮自动构建tasks.json 自定义任务/命令行构建
调试器内建 VS 调试器gdb + launch.json 配置调试
跨平台Windows 为主跨平台:Windows / Linux / macOS
UI 设计工具Qt Designer 插件或内嵌独立 Qt Designer(.ui 文件)

✅ 附:检查 g++ 支持的 C++ 标准版本

g++ -std=c++17 -dM -E - < nul | findstr __cplusplus

http://www.xdnf.cn/news/1668.html

相关文章:

  • 深度学习小记(包括pytorch 还有一些神经网络架构)
  • 代码随想录算法训练营第二十六天
  • 4.24工作总结
  • 机器人项目管理新风口:如何高效推动智能机器人研发?
  • elasticsearch查询中的特殊字符影响分析
  • x-cmd install | brows - 终端里的 GitHub Releases 浏览器,告别繁琐下载!
  • 【MinerU】:一款将PDF转化为机器可读格式的工具——RAG加强(Docker版本)
  • Linux:git和gdb/cgdb
  • Qwen2.5简要全流程以及QA
  • 基于 CentOS 的 Docker Swarm 集群管理实战指南
  • 推理模型不需要思考,伯克利新研究推翻AI刻板印象
  • 机器学习(8)——主成分分析
  • 基于单片机的游泳馆智能管理系统
  • 【网络】TCP/IP协议学习
  • Kafka 命令行样例大全
  • 【记录手贱bug日常】IDEA 配置vmoptions后打不开,重新安装,删注册表均无用
  • 软考:数值转换知识点详解
  • 矩阵系统源码搭建账号分组功能开发全流程解析,支持OEM
  • 图论---朴素Prim(稠密图)
  • 如何在 Vue 3 中实现一个自定义的 `v-html` 组件
  • 蓝桥杯嵌入式系统设计:高效编程与调试方法全解析
  • 基于大模型的食管平滑肌瘤全周期预测与诊疗方案研究
  • 解释器模式:自定义语言解析与执行的设计模式
  • nodejs之Express-介绍、路由
  • 《逃离云端束缚,拥抱GPT本地部署》
  • 深度学习-数值稳定性和模型初始化
  • ZooKeeper配置优化秘籍:核心参数说明与性能优化
  • 实时数字人——DH_LIVE
  • 矩阵运算和线性代数操作开源库
  • Unreal Niagara制作SubUV贴图翻页动画