VSCode+Qt+MinGW开发环境搭建

本文详细介绍了如何使用VSCode结合Qt和MinGW构建开发环境,包括设置Qt目录,创建Qt项目,配置CMake与Qt套件的关联,解决调试时的依赖问题,以及总结了可能的改进措施。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

VSCode+Qt+MinGW开发环境搭建

概述

VSCode扩展性很强,插件机制让其具备不断演进的潜力,适合作为稳定的开发工具。

VSCode+Qt开发环境的搭建需要依赖于以下工具:

  1. VSCode、Qt,其中Qt需要安装MinGW编译工具;
  2. VSCode插件:C++、CMake Tools、Qt Tools、QtConfigure

具体思路上,VSCode只是提供了集成界面,通过它的插件机制来实现对Qt、CMake等工具的调用。

QtConfigure

VSCode中按下F1Ctrl+Shift+P,输入QtConfigure(不区分大小写)会弹出四个菜单:

  • New Project:创建新的Qt项目;
  • Set Qt Dir:指定Qt安装目录,从而识别Qt的套件(Kit),套件是安装Qt时勾选的MinGWMSVC套件;
  • Open Qt Assistant:打开帮助文档;
  • Open Qt Designer:打开Qt设计师编辑界面。

在这里插入图片描述

首先要做的是指定Qt安装目录,指定到MaintainanceTool.exe所在目录即可,不用具体到哪个套件,随后将检测出该版本Qt所安装的编译套件,如下图中检测出了4种套件:

在这里插入图片描述

随后可以创建Qt工程F1输入QtConfigure后选择New Project,经过如下步骤:

  • 输入项目名称:此处输入HelloWorld
  • 选择套件:刚才检测到的之一,此处选择mingw73_64
  • 选择编译工具:此处选择CMake
  • 选择是否带UI文件:此处选择yes

最后在文件夹下生成的项目文件如下图:

在这里插入图片描述

CMake Tool

项目已经生成好了,接下来理论上应该F5就开始调试了,不过一般没那么顺利

梳理一下CMake管理Qt项目的逻辑:

  • CMake依据CMakeLists.txt文件生成makefile
  • QtMinGW套件拿到makefile后编译链接生成最后的可执行文件。

其中关键步骤即是:CMakeQtMinGW套件关联F1输入cmake select a kit,选择该指令后弹出CMake搜索到的编译套件:

在这里插入图片描述

上图中的GCC 7.3.0...看着十分眼熟,就是刚才创建项目时选择的Qt套件,选择它即可。

第一次打开不一定有,猜测原因大致是:CMake会从环境变量Path的位置去搜索Kit,但正经人谁装完Qt还去把套件目录添加到环境变量?

CMake Tools插件提供了办法:F1输入cmake edit user-local cmake kits,选择该指令后会弹出一个名为cmake-tools-kits.json的文件,里面的结构是一个对象数组,每个对象描述了一个套件,在其中添加自己安装的Qt MinGW两个套件:

  {
    "name": "GCC 7.3.0 x86-w64-mingw32",
    "compilers": {
      "C": "D:\\APPs\\Qt\\5.14.2\\Tools\\mingw730_32\\bin\\gcc.exe",
      "CXX": "D:\\APPs\\Qt\\5.14.2\\Tools\\mingw730_32\\bin\\g++.exe"
    },
    "preferredGenerator": {
      "name": "MinGW Makefiles"
    },
    "environmentVariables": {
      "CMT_MINGW_PATH": "D:\\APPs\\Qt\\5.14.2\\Tools\\mingw730_32\\bin"
    }
  },
  {
    "name": "GCC 7.3.0 x86_64-w64-mingw32",
    "compilers": {
      "C": "D:\\APPs\\Qt\\5.14.2\\Tools\\mingw730_64\\bin\\gcc.exe",
      "CXX": "D:\\APPs\\Qt\\5.14.2\\Tools\\mingw730_64\\bin\\g++.exe"
    },
    "preferredGenerator": {
      "name": "MinGW Makefiles"
    },
    "environmentVariables": {
      "CMT_MINGW_PATH": "D:\\APPs\\Qt\\5.14.2\\Tools\\mingw730_64\\bin"
    }
  },

保存退出后,F1输入cmake select a kit,选择scan for kits之后就能找到刚才定位的套件了,选择mingw73_64对应的套件,跑到main.cpp象征性打个断点,F5运行。

可能极容易出现这样的现象:调试也好,直接运行也好,直接闪退了

笔者通过从文件管理器直接打开可执行文件,发现提示缺少Qt相关的dll文件,于是在build目录下运行了一把windeployqt,后续没再出过问题:

D:\APPs\Qt\5.14.2\5.14.2\mingw73_32\bin\windeployqt.exe .\HelloWorld.exe

然后终于到了F5调试的阶段:

在这里插入图片描述

大功告成!

总结

  1. F1Ctrl+Shift+P异常强大,可以执行各种插件的命令;
  2. QtConfigure先找到安装的Qt目录,使用插件的set qt dir指令;
  3. QtConfigure创建新的Qt项目,依次经过输入项目名称、选择套件、选择CMake构建工具、选择是否包含UI文件几个步骤,完成项目创建;
  4. CMake Tools需要找到Qt的套件,通过使用插件的Edit User-Local CMake Kits指令,在打开的cmake-tools-kits.json文件中添加Qt的套件;
  5. CMake Tools选择和创建工程时相同的Qt的套件
  6. 构建一次目标,随后使用windeployqtbuild目录补全缺失的dll文件;
  7. F5调试,大功告成。

遗留问题

大体框架完成了,能实现VSCode+Qt+MinGW的开发,但仍然有几个方面值得改善:

  1. windeployqt这一步应该可以用VSCode的脚本自动完成,应该是在.vscode文件夹下的相关json文件中指定;

  2. .h文件和.cpp文件中均有编译错误,这一点其实很不应该,这对开发过程影响还是较大的,应该通过简单的配置或者安装其他插件就能够避免;

  3. .vscode/launch.json文件中,即使是32位程序,使用的debugger也似乎是64位的,似乎不太对劲,在.../mingw730_32/bin目录下是有gdb.exe的,这个问题或许需要修改QtConfigure插件源码才能改正,或者如果不影响就不需要改动也可;

    “miDebuggerPath”: “d:/APPs/Qt/5.14.2/Tools/mingw730_64/bin/gdb.exe”

<think>好的,用户想了解如何在VS Code中搭建Qt开发环境。我需要先理清楚步骤,确保每个环节都正确无误。首先,用户可能需要安装Qt SDK,然后是VS Code的扩展配置,接着是编译器的设置,比如MinGW或者MSVC,还有调试器的配置。可能还需要处理环境变量和项目配置的问题。 首先,我应该分步骤来写,让用户一步步跟着操作。需要明确安装Qt的步骤,比如下载在线安装器,选择组件,尤其是要注意编译器版本和对应的Qt版本是否匹配。然后安装VS Code的扩展,比如C++Qt Tools和Code Runner。这些扩展能帮助代码补全和运行调试。 接下来是配置编译器和调试器。这里可能需要用户确认MinGW是否已经安装,或者是否使用MSVC。环境变量的添加很重要,否则系统可能找不到qmake和编译器。需要指导用户如何将路径添加到系统变量中。 然后是项目配置部分,特别是tasks.json和launch.json的设置。这里需要详细说明如何编写构建任务,指定qmake和make的命令,以及调试配置。可能用户不太熟悉这些JSON文件的结构,所以要给出示例,并解释每个参数的作用。 最后,建议用户创建一个测试项目,编译运行,确保一切正常。常见问题比如路径错误、版本不兼容也需要提及,帮助用户排查问题。 需要检查是否所有步骤都覆盖到了,特别是环境变量和配置文件的部分,这些地方容易出错。另外,使用中文说明,避免专业术语过于晦涩,让新手也能理解。可能用户使用的是Windows系统,所以步骤以Windows为例,如果用户使用其他系统,可能需要调整,但问题中没有说明,所以暂时默认Windows环境。 还要注意LaTeX格式的正确使用,比如行内公式用$...$,独立公式用$$...$$,但在当前内容中可能用不到太多数学公式,不过如果有代码或路径中的特殊字符,要正确转义。比如在JSON示例中的反斜杠可能需要双反斜杠,或者在Markdown中使用代码块包裹,避免解析错误。 总之,整个流程需要清晰,逐步引导用户完成环境搭建,并预见到可能遇到的问题,给出解决方案。确保回答结构合理,用户能够跟随操作,成功搭建Qt开发环境。</think>以下是在VSCode搭建Qt开发环境的详细步骤: 一、环境准备 1. 安装Qt - 下载Qt在线安装器:[https://www.qt.io/download](https://www.qt.io/download) - 选择组件时注意勾选: $$ \text{Qt > Qt 6.x.x > MSVC 2019 64-bit 或 MinGW 64-bit} $$ $$ \text{Developer and Designer Tools > MinGW 11.x 或对应编译器} $$ 2. 安装VSCode扩展 - C/C++ (Microsoft官方) - Qt Tools (用于代码提示) - Code Runner (可选,快速运行程序) 二、配置编译器 1. 设置环境变量 将以下路径加入系统PATH: ```bash # MinGW示例 C:\Qt\Tools\mingw1120_64\bin C:\Qt\6.5.0\mingw_64\bin ``` 2. 验证安装 终端执行: ```bash qmake --version g++ --version ``` 三、项目配置 1. 创建`CMakeLists.txt`(推荐使用CMake) ```cmake cmake_minimum_required(VERSION 3.5) project(HelloQt) set(CMAKE_CXX_STANDARD 17) set(CMAKE_AUTOMOC ON) find_package(Qt6 COMPONENTS Widgets REQUIRED) add_executable(${PROJECT_NAME} main.cpp) target_link_libraries(${PROJECT_NAME} PRIVATE Qt6::Widgets) ``` 2. 配置`.vscode/tasks.json` ```json { "version": "2.0.0", "tasks": [ { "label": "build", "type": "shell", "command": "cmake --build build", "group": "build" } ] } ``` 四、调试配置 1. 创建`.vscode/launch.json` ```json { "version": "0.2.0", "configurations": [ { "name": "Qt Debug", "type": "cppdbg", "request": "launch", "program": "${workspaceFolder}/build/HelloQt.exe", "stopAtEntry": false, "cwd": "${workspaceFolder}", "environment": [], "externalConsole": true, "MIMode": "gdb", "miDebuggerPath": "C:/Qt/Tools/mingw1120_64/bin/gdb.exe" } ] } ``` 五、测试程序 创建`main.cpp`: ```cpp #include <QApplication> #include <QLabel> int main(int argc, char *argv[]) { QApplication app(argc, argv); QLabel label("Hello Qt6!"); label.resize(400, 300); label.show(); return app.exec(); } ``` 常见问题处理: 1. 若出现`undefined reference`错误,检查: $$ \text{Qt安装路径是否包含空格(建议安装在C:\Qt)} $$ $$ \text{编译器版本是否匹配} $$ 2. 调试时闪退: - 在`launch.json`中设置: ```json "externalConsole": true ``` 最佳实践建议: 1. 使用CMake而非qmake 2. 保持Qt/VSCode/编译器版本一致 3. 定期执行清理构建: ```bash rm -rf build/ mkdir build && cd build cmake -G "MinGW Makefiles" .. ```
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值