VS Code 搭建 Qt 6 开发环境保姆级教程:CMake / qmake、MSVC / MinGW 四种组合全覆盖

环境基准:Qt 6.11.0 · VS Code 1.121.0 · MSVC 2026 64bit · MinGW 13.1.0 64bit · Windows


写在前面:为什么不用 Qt Creator?

先说清楚一个常见疑问:Qt 官方有功能完备的 Qt Creator,为什么还要费劲折腾 VS Code?

我自己的答案是:当你的项目进入"混合技术栈"或者严重依赖 AI 辅助开发时,VS Code 的生态优势是压倒性的。

  • 全栈开发不切 IDE:如果你的项目里 Qt 只是一部分(比如同时写 Qt 桌面端、C++ 后端服务、Python 数据脚本、甚至前端 Web 界面),全塞在 VS Code 一个编辑器里,远比在不同的 IDE 之间来回切换要舒服得多。
  • AI 降维打击:如今开发少不了 AI 助力的加持。VS Code 拥有目前最强大的 AI 插件生态(如 GitHub Copilot、Cursor 生态、Cline 等)。无论是写复杂的信号槽逻辑、重构 C++ 代码,还是生成业务代码,AI 插件在 VS Code 里的响应速度和聪明程度,都远超相对闭塞的 Qt Creator。

但天下没有免费的午餐,VS Code 的代价是:它本身是个纯文本编辑器,根本不懂 Qt,所有底层的工具链都要你手动配齐。 这也是网上教程一大堆、却很少有人讲全的原因------大多数文章只含糊地覆盖了"CMake + MSVC"这一种组合,读者一旦换个编译器(如 MinGW)或构建系统(如老项目的 qmake)就直接报错。

本文的目标就是打破这种信息差,带你一次性把 Windows 下最核心的四种开发组合全部彻底跑通:

  • CMake 构建系统

    • 搭配 MSVC 2026:Windows 平台下的主力推荐组合,原生支持最好。
    • 搭配 MinGW 13.1:轻量化备选组合,适合不愿安装庞大 Visual Studio 的开发者。
  • qmake 构建系统

    • 搭配 MSVC 2026:用于编译和维护基于旧版 qmake 构建的商业老项目。
    • 搭配 MinGW 13.1:用于维护和跑通各类经典的 Qt 开源老代码。

从编译器环境、构建任务、断点调试到代码补全,提供一份真正的全覆盖"保姆级"实操指南。


一、先理解你装的这堆东西到底是什么

很多人配环境时一头雾水,是因为没搞清楚每个组件的角色。先花两分钟理清楚,后面就不会乱。

1.1 四个核心角色

编译器(MSVC / MinGW) :把 C++ 代码变成机器码的工具:

  • MSVC :微软的编译器(cl.exe),随 Visual Studio 2026 一起装的,Windows 原生支持最好。
  • MinGW :GCC 在 Windows 上的移植版(g++.exe),开源、跨平台习惯一致。

构建系统(CMake / qmake) :负责"指挥"编译器,告诉它哪些文件要编译、链接哪些库、生成什么。

  • CMake:现代 C++ 事实标准,Qt 6 官方主推。跨平台、生态大。
  • qmake :Qt 自家的老牌构建工具,配置文件是 .pro。新项目不推荐,但维护老项目绕不开。

Qt SDK(6.11.0) :Qt 的库本体 + 头文件 + 工具链。注意一个关键点:Qt 库是按编译器分别编译的。我的 Qt 安装目录结构是这样:

python 复制代码
D:/appInstall/Qt/
├── 6.11.0/
│   ├── msvc2022_64/      ← 给 MSVC 用的 Qt 库
│   │   ├── bin/          (qmake.exe, windeployqt.exe, Qt6Core.dll ...)
│   │   ├── include/
│   │   └── lib/
│   └── mingw_64/         ← 给 MinGW 用的 Qt 库
│       ├── bin/
│       ├── include/
│       └── lib/
└── Tools/
    ├── mingw1310_64/bin/ ← MinGW 编译器 g++.exe
    ├── CMake_64/bin/     ← CMake cmake.exe
    └── Ninja/            ← Ninja ninja.exe

第一个大坑预警 :MSVC 编译的程序,必须链接 msvc2022_64 下的 Qt 库;MinGW 编译的程序,必须链接 mingw_64 下的库。混用必崩。后面所有配置都要对应好这个路径。

1.2 它们怎么协作

一次完整的构建流程是这样的:

bash 复制代码
你写的 .cpp/.h
      ↓
构建系统(CMake/qmake) 读取配置,生成编译指令
      ↓
编译器(MSVC/MinGW) 执行编译,链接 Qt 库
      ↓
生成 .exe + 依赖的 Qt DLL
      ↓
运行

VS Code 的作用,就是把"触发构建""调试""看输出"这些操作集成到界面里。所以配置 VS Code 的本质,是告诉它:构建系统在哪、编译器在哪、Qt 库在哪

理解了这层,后面所有配置你都知道是在填哪个空。


二、安装 VS Code 扩展

打开 VS Code 扩展面板(Ctrl+Shift+X),装下面几个。

2.1 必装

C/C++ (Microsoft 出品,作者标识 ms-vscode.cpptools

提供 C++ 语法解析、IntelliSense 代码补全、调试支持。这是地基。

CMake Tools (Microsoft 出品,ms-vscode.cmake-tools

提供 CMake 项目的图形化操作:选编译器、配置、构建、运行一条龙。用 CMake 的话这个必装。

2.2 推荐

C/C++ Extension Pack :包含上面 C/C++ 加一些辅助工具,省得单独装。

2.3 关于 Qt 官方扩展

Qt 公司出了官方扩展 Qt C++theqtcompany.qt-cpp),能识别 .ui.qrc.pro 文件,还能可视化设计界面。可以装,但不是必须 。本文的核心配置不依赖它,因为它对网络和账号有要求,很多人装了反而出问题。我建议先用纯 CMake Tools 跑通,确认环境没问题后,再决定要不要加官方扩展。

我自己的习惯:纯手动配置 + CMake Tools,不装 Qt 官方扩展。配置一次写好,换项目复制即可,可控性最高。


三、配置 MSVC 编译器

MSVC 是 Windows 上的首选。但它有一个"反直觉"的特性,必须先理解,否则后面怎么配都报错"找不到编译器"。

关于 Kit 名称显示"MSVC 2022"的说明

Kit 名称来自 Qt 库的文件夹名 msvc2022_64,与编译器版本无关------实际用的仍是你 Visual Studio 自带的 cl.exe。MSVC 历来保持二进制向后兼容,VS2026 链接 msvc2022_64 库没有任何问题,VS2022 用户操作完全一致。

3.1 核心难点:MSVC 需要"环境初始化"

MinGW 的 g++.exe 是个独立程序,加到 PATH 里就能用。但 MSVC 的 cl.exe 不能直接运行 ------它依赖一大堆环境变量(头文件路径、库路径、SDK 版本等),这些变量需要通过一个叫 vcvarsall.bat 的脚本来设置。

直接在普通 cmd 里敲 cl,会提示找不到命令。

但从开始菜单打开:

yaml 复制代码
开始菜单 → Visual Studio 2026 → x64 Native Tools Command Prompt for VS 2026

在这个终端里敲 cl,就能看到编译器版本信息了。区别就在于后者运行时自动执行了 vcvarsall.bat

3.2 方案 A:从开发者终端启动 VS Code

最省事的方法:让 VS Code 继承开发者终端的环境变量。

  1. 打开 x64 Native Tools Command Prompt for VS 2026
  2. cd 到你的项目目录
  3. code . 启动 VS Code
css 复制代码
code .

这样启动的 VS Code 自动拥有了 MSVC 的全部环境变量,CMake Tools 能直接找到 cl.exe
缺点:每次都得这么开,麻烦。适合临时验证。

3.3 方案 B:让 CMake Tools 自动加载 MSVC 环境

CMake Tools 其实自带了扫描 Visual Studio 的能力,能自动找到 MSVC 并加载其环境,不需要特殊终端。

Ctrl+Shift+P,输入并执行:

makefile 复制代码
CMake: Scan for Kits

扫描完成后再执行:

vbnet 复制代码
CMake: Select a Kit

你会看到类似的选项列表:

选MSVC 2022 x64 (Qt)。CMake Tools 会自动在构建时加载 MSVC 环境,这就解决了 3.1 的问题,不用再开特殊终端

如果列表里没有 Visual Studio 项,说明 CMake Tools 没扫描到。检查一下 VS 安装时是否勾选了"使用 C++ 的桌面开发"工作负载------Qt 需要的 MSVC 工具集就在这里面。

3.4 告诉 CMake 去哪找 Qt

编译器搞定了,还要告诉 CMake 库在哪。这是通过 CMAKE_PREFIX_PATH 变量实现的。

在项目根目录建 .vscode/settings.json

json 复制代码
{
  "cmake.configureSettings": {
    "CMAKE_PREFIX_PATH": "D:/appInstall/Qt/6.11.0/msvc2022_64"
  }
}

路径确认 :去 Qt 安装目录看一眼实际文件夹名。Qt 6.11 配 VS2022 一般是 msvc2022_64。注意 JSON 里用正斜杠 / 或双反斜杠 \,单反斜杠会被当转义符。

到这里 MSVC + CMake 的环境就配好了。先别急着跑,第五章有完整的 CMakeLists.txt 模板和操作步骤。


四、配置 MinGW 编译器

MinGW 比 MSVC 简单,g++.exe 不需要环境初始化,但有两个地方容易踩坑。

4.1 确认 MinGW 和 Qt 的路径

安装 Qt 时选了 MinGW 13.1.0,它在 Qt 的 Tools 目录下,而不是系统 PATH 里。先确认实际路径:

打开文件资源管理器,找到Qt 安装根目录,应该有类似这样的结构:

javascript 复制代码
D:/appInstall/Qt/
├── 6.11.0/
│   ├── msvc2022_64/    ← MSVC 版 Qt 库
│   └── mingw_64/       ← MinGW 版 Qt 库(用这个)
└── Tools/
    └── mingw1310_64/
        └── bin/        ← g++.exe 在这里

记下这两个路径:

  • MinGW 编译器:D:/appInstall/Qt/Tools/mingw1310_64/bin
  • MinGW 版 Qt 库:D:/appInstall/Qt/6.11.0/mingw_64

4.2 让 VS Code 找到 MinGW 编译器

CMake Tools 自动扫描编译器时,扫描的是系统 PATH。Qt 自带的 MinGW 默认不在系统 PATH 里,所以直接扫描可能找不到。

方法一(推荐):临时加入 PATH 后扫描

把 MinGW 的 bin 目录加入系统环境变量 PATH:

复制代码
此电脑 → 右键属性 → 高级系统设置 → 环境变量 → 系统变量 → Path → 新建

填入:D:\appInstall\Qt\Tools\mingw1310_64\bin

加完之后重启 VS Code (必须重启,VS Code 启动时才读取 PATH),然后在状态栏点 Kit 选择,或命令面板执行 CMake: Scan for Kits,这次会出现:

复制代码
GCC 13.1.0 x86_64-w64-mingw32

选这个就是 MinGW。

方法二:手动编辑 Kit 文件

如果不想改系统 PATH,可以直接编辑 CMake Tools 的 Kit 配置文件。

命令面板(Ctrl+Shift+P)→ 输入 CMake: Edit User Local CMake Kits → 回车

这会打开一个 JSON 文件,手动追加一项:

css 复制代码
[  {    "name": "MinGW 13.1.0 (Qt)",    "compilers": {      "CXX": "D:/appInstall/Qt/Tools/mingw1310_64/bin/g++.exe",      "C":   "D:/appInstall/Qt/Tools/mingw1310_64/bin/gcc.exe"    },    "preferredGenerator": {      "name": "MinGW Makefiles"    }  }]

保存后,状态栏的 Kit 列表里就会出现 MinGW 13.1.0 (Qt),直接选它。

4.3 切换 Qt 路径到 MinGW 版

⚠️ 这是最常见的坑:编译器和 Qt 库必须对应 。用 MinGW 编译,就必须链接 MinGW 版的 Qt 库(mingw_64),不能用 MSVC 版(msvc2022_64),两者 ABI 不兼容,链接必报错。
.vscode/settings.json 改成:

bash 复制代码
{
  "cmake.cmakePath": "D:/appInstall/Qt/Tools/CMake_64/bin/cmake.exe",
  "cmake.configureSettings": {
    "CMAKE_PREFIX_PATH": "D:/appInstall/Qt/6.11.0/mingw_64"
  },
  "cmake.environment": {
    "PATH": "D:/appInstall/Qt/6.11.0/mingw_64/bin;D:/appInstall/Qt/Tools/mingw1310_64/bin;${env:PATH}"
  }
}

两个路径都要加:

  • mingw_64/bin:运行时找 Qt DLL(Qt6Core.dll 等)
  • mingw1310_64/bin:运行时找 MinGW 自身的运行库(libstdc++-6.dll 等)
    少任何一个,运行时都会弹"找不到 xxx.dll"的错误框。

4.4 切换编译器后必须清理缓存

如果你之前用 MSVC 配置过,现在切换到 MinGW,必须删掉旧的 build 目录 ,否则 CMake 缓存里还保留着 MSVC 的配置,新的 Kit 选择不会生效。

命令面板(Ctrl+Shift+P)→ 输入:

makefile 复制代码
CMake: Delete Cache and Reconfigure

回车,CMake Tools 会清空缓存并用新 Kit 重新配置。这个命令在 CMake Tools 激活后(即打开了含 CMakeLists.txt 的文件夹后)才能找到

每次换编译器都要做这一步,这是不少人换了 Kit 却发现编译器还是旧的、百思不得其解的原因。


五、CMake 项目完整流程

环境配好了,现在跑真实项目。CMake 是 Qt 6 主推方式。

5.1 一个最小可运行的 CMakeLists.txt

先用最简单的例子验证环境,新建文件夹 hello_qt

css 复制代码
hello_qt/
├── CMakeLists.txt
├── main.cpp
└── .vscode/
    └── settings.json

CMakeLists.txt

scss 复制代码
cmake_minimum_required(VERSION 3.20)
project(hello_qt VERSION 1.0 LANGUAGES CXX)

# C++ 标准
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

# Qt 自动化工具:MOC(元对象)、RCC(资源)、UIC(界面文件)
# 用 Qt 必开,否则信号槽、Q_OBJECT 会链接报错
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC ON)

# 查找 Qt6,需要 Widgets 模块
find_package(Qt6 REQUIRED COMPONENTS Widgets)

# 用 qt_add_executable 而不是普通 add_executable
# 它会自动处理 Qt 的特殊链接需求
qt_add_executable(hello_qt main.cpp)

target_link_libraries(hello_qt PRIVATE Qt6::Widgets)

main.cpp

arduino 复制代码
#include <QApplication>
#include <QPushButton>

int main(int argc, char* argv[]) {
    QApplication app(argc, argv);

    QPushButton button("Qt + VS Code 环境正常!");
    button.resize(300, 80);
    button.show();

    return app.exec();
}

.vscode/settings.json(MSVC 版):

json 复制代码
{
  "cmake.cmakePath": "D:/appInstall/Qt/Tools/CMake_64/bin/cmake.exe",
  "cmake.configureSettings": {
    "CMAKE_PREFIX_PATH": "D:/appInstall/Qt/6.11.0/msvc2022_64"
  }
}

5.2 CMakeLists.txt 逐行解读

新手最容易把这个文件当"魔法咒语"复制,出问题就懵。这里讲清楚每段的作用:

CMAKE_AUTOMOC ON ------ Qt 的信号槽机制依赖一个叫 MOC(Meta-Object Compiler)的预处理器。任何带 Q_OBJECT 宏的类,都要先经过 MOC 生成额外代码。开了这个开关,CMake 自动处理,否则你会遇到诡异的链接错误 undefined reference to vtable

AUTORCC / AUTOUIC ------ 分别自动处理 .qrc 资源文件和 .ui 界面文件,原理同上。

find_package(Qt6 REQUIRED COMPONENTS Widgets) ------ 让 CMake 去 CMAKE_PREFIX_PATH 指定的目录找 Qt6。Widgets 是模块名,按需添加:网络要加 Network,QML 要加 Quick

qt_add_executable ------ Qt 6 提供的封装,比裸 add_executable 多处理了一些平台细节(比如 Windows 下不弹控制台窗口、macOS 打 Bundle)。

5.3 VS Code 里的操作步骤

打开 hello_qt 文件夹后:

第 1 步:选 Kit

点Cmake tools状态栏的 No Kit Selected(或按 Ctrl+Shift+PCMake: Select a Kit),选你要的编译器(MSVC amd64 或 MinGW)。这里先选择MSVC。MinGW在5.4节给出。

第 2 步:配置(Configure)

正常情况下选完 Kit 会自动触发。手动触发可以 Ctrl+Shift+PCMake: Configure。看 OUTPUT 面板,出现这样的输出就对了:

第 3 步:选构建类型

Cmake tools状态栏点 Debug 可以切 Debug / Release。开发时用 Debug(带调试符号),发布用 Release(优化、体积小)。

第 4 步:构建(Build)

F7 或点状态栏的 Build

第 5 步:运行

Shift+F5(不调试运行),或点状态栏的 ▶ 图标。能弹出按钮窗口,环境就通了。

5.4 MinGW进行编译

以上是用cmake+msvc成功的编译并运行。下面是cmake+mingw的截图,也成功的运行了。



六、qmake 项目流程

如果你接手的是用 .pro 文件的项目,或者教程素材是 qmake 的,这一章帮你在 VS Code 里跑起来。CMake Tools 不管 qmake,所以要手动配置任务。

6.1 .pro 文件示例

qmake 的项目配置文件是 .pro,对应上面的 hello 例子:

makefile 复制代码
# hello_qt.pro
QT += widgets
CONFIG += c++17
TARGET = hello_qt
TEMPLATE = app

SOURCES += main.cpp

QT += widgets 等价于 CMake 的 find_package + link WidgetsSOURCES 列出源文件。qmake 的语法比 CMake 简洁,这也是它当年流行的原因。

6.2 用 tasks.json 集成 qmake 命令

qmake 的构建是两步:先 qmake 生成 Makefile,再 make(MinGW 下是 mingw32-make,MSVC 下是 nmake)编译。

.vscode/tasks.json 配置(以 MinGW 为例):

bash 复制代码
{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "qmake",
      "type": "shell",
      "command": "D:/appInstall/Qt/6.11.0/mingw_64/bin/qmake.exe",
      "args": ["${workspaceFolder}/hello_qt.pro", "-o", "Makefile"],
      "options": { "cwd": "${workspaceFolder}/build" }
    },
    {
      "label": "make",
      "type": "shell",
      "command": "D:/appInstall/Qt/Tools/mingw1310_64/bin/mingw32-make.exe",
      "options": { "cwd": "${workspaceFolder}/build" },
      "dependsOn": ["qmake"]
    }
  ]
}

先手动建一个 build 文件夹,然后 Ctrl+Shift+PTasks: Run Task → 选 make,它会先跑 qmake 再编译。

这时候就会在目录里生成C:\Users\yuehui\Desktop\hello\build\release\hello_qt.exe文件。如果运行后有下面的报错:

在终端执行下面的命令即可:

arduino 复制代码
D:\appInstall\Qt\6.11.0\mingw_64\bin\windeployqt.exe C:\Users\yuehui\Desktop\hello\build\release\hello_qt.exe

现在再运行hello_qt.exe就正常运行了。

6.3 MSVC 版的差异

如果用 MSVC 跑 qmake,命令换成对应路径,make 工具改成 nmake

bash 复制代码
{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "qmake",
      "type": "shell",
      "command": "D:/appInstall/Qt/6.11.0/msvc2022_64/bin/qmake.exe",
      "args": ["${workspaceFolder}/hello_qt.pro", "-o", "Makefile"],
      "options": { 
        "cwd": "${workspaceFolder}/build" 
      }
    },
    {
      "label": "nmake",
      "type": "shell",
      "command": "nmake",
      "args": ["release"], 
      "options": { 
        "cwd": "${workspaceFolder}/build" 
      },
      "dependsOn": ["qmake"],
      "group": {
        "kind": "build",
        "isDefault": true
      }
    }
  ]
}

在 VS Code 中,按下快捷键 Ctrl+Shift+P 打开命令面板。输入并选择 Tasks: Run Task(运行任务) -> 选 nmake

编译完成后,因为 MSVC 编译出来的 exe 同样存在找不到 DLL 的问题,我们要用配套的 MSVC 版打包工具去处理。在底部新建一个终端,直接运行以下打包命令:

arduino 复制代码
D:\appInstall\Qt\6.11.0\msvc2022_64\bin\windeployqt.exe C:\Users\yuehui\Desktop\hello\build\release\hello_qt.exe

打包完成后,在终端里敲击或直接去文件夹里双击,即可完美运行:

注意 nmake 需要 MSVC 环境变量,所以这种情况还是建议从 3.2 的开发者终端启动 VS Code,否则 nmake 找不到。


七、配置调试(断点调试)

能跑还不够,得能打断点调试。这部分 MSVC 和 MinGW 用的调试器不同,分开讲。

如果你用的是 CMake 项目 ,请在项目根目录下创建 .vscode/launch.json。为了方便,可以把两个调试器配置同时写进去,届时在 VS Code 调试面板一键切换:

bash 复制代码
{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "调试 (MSVC)",
      "type": "cppvsdbg",
      "request": "launch",
      "program": "${command:cmake.launchTargetPath}",
      "args": [],
      "stopAtEntry": false,
      "cwd": "${workspaceFolder}",
      "environment": [
        {
          "name": "PATH",
          "value": "D:/appInstall/Qt/6.11.0/msvc2022_64/bin;${env:PATH}"
        }
      ],
      "console": "integratedTerminal"
    },
    {
      "name": "调试 (MinGW/GDB)",
      "type": "cppdbg",
      "request": "launch",
      "program": "${command:cmake.launchTargetPath}",
      "args": [],
      "stopAtEntry": false,
      "cwd": "${workspaceFolder}",
      "MIMode": "gdb",
      "miDebuggerPath": "D:/appInstall/Qt/Tools/mingw1310_64/bin/gdb.exe",
      "environment": [
        {
          "name": "PATH",
          "value": "D:/appInstall/Qt/6.11.0/mingw_64/bin;D:/appInstall/Qt/Tools/mingw1310_64/bin;${env:PATH}"
        }
      ],
      "setupCommands": [
        {
          "description": "为 gdb 启用整齐打印",
          "text": "-enable-pretty-printing",
          "ignoreFailures": true
        }
      ]
    }
  ]
}

7.1 MSVC 配置关键点

  • type: cppvsdbg ------ 这是 MSVC 专用调试器类型,MinGW 不能用这个。
  • program: ${command:cmake.launchTargetPath} ------ 这个变量由 CMake Tools 提供,自动指向当前构建出的 exe,不用手写路径。
  • environment 里的 PATH ------ 指向 D:/appInstall/Qt/6.11.0/msvc2022_64/bin,让调试启动时能精准找到 MSVC 版的 Qt DLL。
  • 操作 :按 F5 即可断点调试。

7.2 MinGW 配置关键点

  • type: cppdbg ------(不是 vsdbg),配合 MIMode: gdb 使用。
  • miDebuggerPath ------ 精准指向你 Qt 目录下的 GDB 调试器:D:/appInstall/Qt/Tools/mingw1310_64/bin/gdb.exe
  • environment 里的 PATH ------ 同时注入了 MinGW 版 Qt 库 bin 目录和编译器 bin 目录。
  • setupCommands ------ 开启 pretty-printing,否则看 QString 之类的变量是一堆乱码内存。

7.3 让调试器看懂 Qt 类型

默认调试时,鼠标悬停在 QString 上看到的是内部结构,不是字符串内容,很难受。

  • MSVC 下 :Qt 安装目录里自带了 .natvis 文件(类型可视化定义),通常 MSVC 调试器会自动加载。如果没生效,可以在 launch.json 里手动指定 visualizerFile
  • MinGW/GDB 下 :靠上面配置里的 -enable-pretty-printing。开启之后 QString 直接显示字符串内容,QList 显示元素列表,体验接近 Qt Creator。

八、配置 IntelliSense(代码补全与跳转)

构建和调试是 CMake Tools 管的,但代码补全、错误波浪线、跳转定义是 C/C++ 扩展管的,两者数据来源不同,要单独喂路径。

8.1 最省事的方案:让 C/C++ 扩展跟随 CMake

.vscode/settings.json 里加一行,让 IntelliSense 自动用 CMake 的配置信息:

json 复制代码
{
  "C_Cpp.default.configurationProvider": "ms-vscode.cmake-tools"
}

这是最推荐 的方式。CMake 配置时会生成 compile_commands.json(编译命令数据库),C/C++ 扩展读它就知道所有头文件路径,包括 Qt 的。补全、跳转全部自动生效,不用手写路径。

为了生成这个数据库,CMakeLists.txt 里加一行:

scss 复制代码
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)

8.2 手动方案:c_cpp_properties.json

如果上面的自动方案出问题,或者你使用的是 qmake 项目,无法通过 CMake 插件同步路径,可以手动指定头文件路径。

Ctrl+Shift+P → 输入 C/C++: Edit Configurations (JSON),编辑 .vscode/c_cpp_properties.json

MSVC 专属手动配置:

bash 复制代码
{
  "configurations": [
    {
      "name": "Win32-MSVC",
      "includePath": [
        "${workspaceFolder}/**",
        "D:/appInstall/Qt/6.11.0/msvc2022_64/include/**"
      ],
      "defines": ["_DEBUG", "UNICODE", "_UNICODE"],
      "compilerPath": "cl.exe",
      "cStandard": "c17",
      "cppStandard": "c++17",
      "intelliSenseMode": "windows-msvc-x64"
    }
  ],
  "version": 4
}

MinGW 13.1.0 专属手动配置:

bash 复制代码
{
  "configurations": [
    {
      "name": "Win32-MinGW",
      "includePath": [
        "${workspaceFolder}/**",
        "D:/appInstall/Qt/6.11.0/mingw_64/include/**"
      ],
      "defines": ["_DEBUG", "UNICODE", "_UNICODE"],
      "compilerPath": "D:/appInstall/Qt/Tools/mingw1310_64/bin/g++.exe",
      "cStandard": "c17",
      "cppStandard": "c++17",
      "intelliSenseMode": "windows-gcc-x64"
    }
  ],
  "version": 4
}

小结 :如果是 CMake 项目,优先用 8.1 的自动方案,省心且不会和实际编译路径脱节。8.2 仅作为 qmake 项目或自动方案失效时的兜底方案。


结语

把这套流程走完,你应该能体会到:VS Code 配 Qt 的所有"玄学问题",归根结底就三件事------编译器环境对不对、Qt 库路径对不对、自动化工具(MOC/RCC)开没开。理解了这三层,遇到任何报错都能往这三个方向去查。

[#Qt](#Qt #VSCode #CMake #qmake #MSVC #MinGW #C++ #开发环境 "#Qt") [#VSCode](#Qt #VSCode #CMake #qmake #MSVC #MinGW #C++ #开发环境 "#VSCode") [#CMake](#Qt #VSCode #CMake #qmake #MSVC #MinGW #C++ #开发环境 "#CMake") [#qmake](#Qt #VSCode #CMake #qmake #MSVC #MinGW #C++ #开发环境 "#qmake") [#MSVC](#Qt #VSCode #CMake #qmake #MSVC #MinGW #C++ #开发环境 "#MSVC") [#MinGW](#Qt #VSCode #CMake #qmake #MSVC #MinGW #C++ #开发环境 "#MinGW") [#C++](#Qt #VSCode #CMake #qmake #MSVC #MinGW #C++ #开发环境 "#C++") [#开发环境](#Qt #VSCode #CMake #qmake #MSVC #MinGW #C++ #开发环境 "#%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83")

相关推荐
ai安歌5 小时前
鸿蒙PC:Qt适配OpenHarmony实战【取色间】:RGB 滑动调整、HEX 展示和颜色预览
qt·华为·harmonyos
我在人间贩卖青春7 小时前
重学Qt——数据库
qt
sycmancia7 小时前
Qt——发送自定义事件
开发语言·qt
ai安歌9 小时前
鸿蒙PC:Qt适配OpenHarmony实战【人名录】:单机联系人卡片,不读系统通讯录也能演示详情联动
数据库·qt·harmonyos
丁劲犇9 小时前
使用TraeAI开发Web页面测试MSYS2 ucrt64 Qt MCP服务器
服务器·前端·c++·qt·mcp
CodeKwang9 小时前
Qt6.5数控加工CAM框架实战:基于工厂模式与分层架构的CamCore完整实现
qt·框架·工业软件·cam
我在人间贩卖青春10 小时前
重学Qt——自定义库
qt
小燚~10 小时前
MSVCR100.dII报错问题处理
c++·windows·qt
lqj_本人10 小时前
鸿蒙PC:Qt适配OpenHarmony实战【花账】:从一笔支出开始,做一个本地记账小应用
数据库·qt·harmonyos