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.pswp.cn/bicheng/78246.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/78246.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/78246.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

開源漏洞掃描器:OpenVAS

一、OpenVAS介紹 OpenVAS (Open Vulnerability Assessment System) 是一款功能強大的開源漏洞掃描器。它由 Greenbone Networks 開發和維護&#xff0c;是 Greenbone 安全管理器 (GSM) 產品的基礎&#xff0c;同時也有免費的社區版本&#xff08;Greenbone Community Edition&…

Redis Pipeline 詳解

Redis Pipeline 詳解 Redis 無 Pipeline 耗時情況 : #mermaid-svg-8RIiJyeBO0uIrWjr {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-8RIiJyeBO0uIrWjr .error-icon{fill:#552222;}#mermaid-svg-8RIiJyeBO0uIrWjr .…

2025.04.24【3D】3D繪圖入門指南

Nifty graph A contribution by Matt Asher. 3D animation A 3D animated scatterplot made with R and rgl. 文章目錄 Nifty graph3D animation 2025.04.24【3D】| 3D繪圖入門指南什么是3D繪圖&#xff1f;為什么使用3D繪圖&#xff1f;如何在R中進行3D繪圖&#xff1f;安裝…

[特殊字符] 分布式事務中,@GlobalTransactional 與 @Transactional 到底怎么配合用?

在微服務架構中&#xff0c;隨著系統模塊的拆分&#xff0c;單體應用中的本地事務已經無法滿足跨服務的數據一致性需求。此時&#xff0c;我們就需要引入分布式事務解決方案&#xff0c;比如 Seata。在使用 Seata 的過程中&#xff0c;很多人會遇到一個常見的疑問&#xff1a; …

TDengine 集群高可用方案設計(二)

四、TDengine 集群高可用方案設計 4.1 硬件與網絡架構設計 服務器選型&#xff1a;選擇配置高、穩定性強的服務器&#xff0c;如戴爾 PowerEdge R740xd、華為 RH2288H V5 等。以戴爾 PowerEdge R740xd 為例&#xff0c;它配備英特爾至強可擴展處理器&#xff0c;具備高性能計…

從對數變換到深度框架:邏輯回歸與交叉熵的數學原理及PyTorch實戰

目錄 前言 一、連乘變連加二、最小化損失函數2.1交叉熵2.2 二分類交叉熵2.3 多分類交叉熵三、邏輯回歸與二分類3.1 邏輯回歸與二分類算法理論講解3.1.1 散點輸入3.1.2 前向計算3.1.3 Sigmoid函數引入3.1.4 參數初始化3.1.5 損失函數3.1.6 開始迭代3.1.7 梯度下降顯示四、基于框…

高企復審獎補!2025年合肥市高新技術企業重新認定獎勵補貼政策及申報條件

一、合肥市高新技術企業重新認定獎勵補貼政策 &#xff08;一&#xff09;高新區高新技術企業重新認定復審補貼獎勵 重新認定為國家高新技術企業的給予5萬元一次性獎勵。 &#xff08;二&#xff09;經開區高新技術企業重新認定復審補貼獎勵 對重新認定的企業&#xff0c;給…

Spring Boot 中配置線程池時優化 `ThreadPoolTaskExecutor` 的配置總結

在 Spring Boot 中配置線程池時&#xff0c;可以通過以下方式進一步優化 ThreadPoolTaskExecutor 的配置&#xff0c;提升性能、靈活性和可靠性&#xff1a; 優化點 1&#xff1a;合理設置線程池參數 關鍵參數調整 Bean(name "taskExecutor") public Executor tas…

opencv 圖像的旋轉

圖像的旋轉 1 單點旋轉2. 圖片旋轉&#xff08;cv2.getRotationMatrix2D&#xff09;3. 插值方法3.1 最近鄰插值(cv2.INTER_NEAREST)3.2 雙線性插值(cv2.INTER_LINEAR)3.3 像素區域插值&#xff08;cv2.INTER_AREA&#xff09;3.4 雙三次插值&#xff08;cv2.INTER_CUBIC&#…

如何在 Odoo 18 中配置自動化動作

如何在 Odoo 18 中配置自動化動作 Odoo是一款多功能的業務管理平臺&#xff0c;旨在幫助各種規模的企業更高效地處理日常運營。憑借其涵蓋銷售、庫存、客戶關系管理&#xff08;CRM&#xff09;、會計和人力資源等領域的多樣化模塊&#xff0c;Odoo 簡化了業務流程&#xff0c…

每日兩道leetcode

345. 反轉字符串中的元音字母 - 力扣&#xff08;LeetCode&#xff09; 題目 給你一個字符串 s &#xff0c;僅反轉字符串中的所有元音字母&#xff0c;并返回結果字符串。 元音字母包括 a、e、i、o、u&#xff0c;且可能以大小寫兩種形式出現不止一次。 示例 1&#xff1a;…

【SQL 基礎入門 1. -- SQL 基本語法詳解及舉例】

文章目錄 SQL 數據庫創建及使用刪除數據庫SQL 查看數據空中有哪些表格SQL 創建表格SQL 修改表格列數據格式SQL 表格插入數據SQL 查看表格類型組成SQL 查看表格中的內容 SQL 查詢語句SQL 查看指定列SQL 選擇指定列SQL 按指定列進行升序排序SQL 平均值/求和/最大值/最小值 SQL 數…

PostgreSQL 分區表——范圍分區SQL實踐

PostgreSQL 分區表——范圍分區SQL實踐 1、環境準備1-1、新增原始表1-2、執行腳本新增2400w行1-3、創建pg分區表-分區鍵為創建時間1-4、創建24年所有分區1-5、設置默認分區&#xff08;兜底用&#xff09;1-6、遷移數據1-7、創建分區表索引 2、SQL增刪改查測試2-1、查詢速度對比…

Apache Flink 深度解析:流處理引擎的核心原理與生產實踐指南

Apache Flink 深度解析&#xff1a;流處理引擎的核心原理與生產實踐指南 引言&#xff1a;實時計算的范式革命 2023年雙十一期間&#xff0c;某頭部電商平臺基于Flink構建的實時風控系統成功攔截了每秒超過120萬次的異常交易請求。這背后是Apache Flink作為第四代計算引擎的強…

【Java學習筆記】選擇結構

選擇結構 內容結構 一、順序結構 二、分支控制 &#xff08;1&#xff09;單分支 &#xff08;2&#xff09;雙分支 &#xff08;3&#xff09;多分支 &#xff08;4&#xff09;嵌套分支 &#xff08;5&#xff09;switch 分支結構 三、switch和if的比較 一、順序結構…

03_JavaScript

文章目錄 一、概述1.1、JavaScript簡介1.2、JavaScript組成部分1.3、為什么要學習JavaScript1.4、學習的目的1.5、JavaScript與Java的關系 二、使用位置及運行說明2.1、使用位置2.2、如何運行 三、JavaScript基礎語法3.1、變量3.2、運算符3.3、控制流程3.3.1、分支結構3.3.2、循…

PySide6 GUI 學習筆記——常用類及控件使用方法(常用類矩陣QRect)

文章目錄 一、構造與初始化方法二、坐標與尺寸獲取三、坐標與尺寸設置四、幾何運算方法五、移動與調整方法六、狀態判斷方法七、類型轉換方法八、操作符重載九、靜態方法十、特殊方法附錄方法速查表注意的問題交集和并集圖解 &#x1f4d8; PySide6.QtCore.QRect 使用整數精度定…

AI 開發入門之 RAG 技術

目錄 一、從一個簡單的問題開始二、語言模型“閉卷考試”的困境三、RAG 是什么—LLM 的現實世界“外掛”四、RAG 的七步流程第一步&#xff1a;加載數據&#xff08;Load&#xff09;第二步&#xff1a;切分文本&#xff08;Chunking&#xff09;第三步&#xff1a;向量化&…

解決yarn install 報錯 error \node_modules\electron: Command failed.

在電腦重裝系統后,重新安裝項目依賴,遇到這一報錯 完整報錯信息如下: error D:\xxxxx\xxxxxx\node_modules\electron: Command failed. Exit code: 1 Command: node install.js Arguments: Directory: D:\xxxxx\xxxxx\node_modules\electron Output: HTTPError: Response cod…

2025年3月電子學會青少年機器人技術(五級)等級考試試卷-理論綜合

青少年機器人技術等級考試理論綜合試卷&#xff08;五級&#xff09; 分數&#xff1a;100 題數&#xff1a;30 一、單選題(共20題&#xff0c;共80分) 1. 2025年初&#xff0c;中國科技初創公司深度求索在大模型領域迅速崛起&#xff0c;其開源的大模型成為全球AI領域的焦…