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

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

相关文章:

  • 2、DevEco Studio的使用
  • 【网络安全】社会工程学策略
  • LibrePhotos本地部署打造个人云相册安全存储和分享家庭照片(1)
  • 健康养生小窍门
  • 华为手机怎么进行音频降噪?音频降噪技巧分享:提升听觉体验
  • 缓存集群技术深度解析:从原理到实战
  • 基于Pytorch的深度学习-第二章
  • Qt UDP组播实现与调试指南
  • Vue+Flask豆瓣LSTM影评+推荐算法大数据可视化平台深度学习系统源码
  • 加密认证库openssl初始附带c/c++的使用源码
  • Linux之七大难命令(The Seven Difficult Commands of Linux)
  • 硬件工程师系列(十四)RS232自学设计分享
  • uniapp -- 实现微信小程序、app、H5端视频上传
  • 每日英语:每周背10句
  • `rfind()` 从字符串的右侧开始查找指定子字符串首次出现的位置
  • 达梦并行收集统计信息
  • CLIP和SimCLR集成到图像-文本检索系统技术实现步骤和部署方案(代码版)
  • 《仙剑奇侠传二》游戏秘籍
  • Linux常见指令介绍下(入门级)
  • Vue3集成浏览器API实时语音识别
  • 第一集丨《无尽的尽头》值得关注,《榜上佳婿》平平无奇
  • 体坛联播|巴萨“三杀”皇马夺国王杯,陈妤颉破亚洲少年纪录
  • 航天科技集团质量技术部部长严泽想升任集团副总经理
  • “谁羽争锋”全国新闻界羽毛球团体邀请赛在厦门开赛
  • 外交部答澎湃:愿同阿曼在国际和地区事务中加强沟通协调
  • 直播中抢镜“甲亢哥”的翁东华卸任了!此前任文和友小龙虾公司董事