【VSCode】调试QT项目

本文详细介绍如何搭建QT开发环境,包括配置CPP环境、自动补全功能设置、构建QT项目的过程,以及解决编译和运行过程中遇到的问题。同时,分享了在不同环境下遇到的特殊问题及解决方案。

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

搭建QT环境

安装好CPP环境,control+shift+p,打开命令窗口,输入C/C++选择Config配置(json),然后在includepath下将QT的头文件目录全部加入

在这里插入图片描述

构建QT项目

经过上一步的操作,输入QT的代码因为已经可以有自动补全的功能了,然后写好cpp,h文件,打开QT的命令行工具

在这里插入图片描述

然后进入项目路径,输入qmake -project
此时,项目文件夹下会生成一个以项目名为前缀的.pro文件

执行qmake,项目中会生成Makefile.Debug和Makefile.Release

我自己的环境下我执行make会找不到命令,设置了环境变量且重启后依旧没解决,网上查找的解决方法是使用mingw32-make,所以输入命令mingw32 -make -f Makefile.Debug,Debug目录中应该有.exe

但是,一开始我并没有成功!!!

至此,我个人的情况是,项目中Debug目录为空,然后我把Makefile.Debug去掉了,在执行一遍发现Release目录下有.exe,然后运行了一遍发现Debug目录下也有.exe了

然后进入Debug目录,执行windeployqt xx.exe,xx指的是exe程序名

此时项目目录如下

在这里插入图片描述

launch.json和task.json

miDebuggerPath替换成自己的编译器路径
program替换成自己的Debug下的exe路径

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) Launch",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/debug/qt.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "C:/MinGW/bin/gdb.exe",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "Build"
        }
    ]
}
{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "Build", // build任务
            "type": "shell",
            "command": "mingw32-make -f Makefile.Debug"
        }
    ]
}

结果

在这里插入图片描述

在这里插入图片描述

关于QT的小问题

以上的QT的文件目录exe代码是我从csdn上找的,不是原创
代码作者博客,代码的Git链接文内有
QDirModel会造成主线程阻塞作者也知道,然后我改成QFileSystemModel之后发现了一个问题

界面依旧会卡顿,网上查了半天说是FileIconProvider导致主线程调用了所以卡着,按照网上说的重写了那个方法并且给Model也设置了IconProvider,未能解决

但是,我发现,在家里的电脑上并没有发现这个问题,网上其他人好像也都没有类似情况!

终于我发现了区别, 在这里插入图片描述

公司的这两个磁盘,G盘是空的驱动器,Z盘是一个共享盘,服务器不开是打不开的,QTCreator中运行显示信息SHGetFileInfo()超时,家里的电脑没有这种磁盘,不存在这个问题,所以我想问题是不是出在这里呢?

暂未解决,留待以后更新

### 在 Ubuntu 上通过 VSCode 创建 QT 项目的步骤 #### 工具准备 为了在 Ubuntu 上使用 VSCode 进行 QT 项目开发,需要完成一系列工具和插件的安装与配置。以下是具体的操作方法: 1. **安装必要的依赖项** 需要先确保系统中已安装 `build-essential` 和其他基础构建工具包。可以通过运行以下命令来实现: ```bash sudo apt update && sudo apt install build-essential qt5-default qtcreator libqt5webkit5-dev qttools5-dev-tools -y ``` 此外,还需要验证 Qt 是否正确安装。可以执行 `qmake --version` 命令检查版本号[^3]。 2. **安装 VSCode 及其相关插件** 打开 VSCode 并进入扩展市场(左侧活动栏中的方块图标),搜索并安装以下两个主要插件: - **C/C++ 插件**:由 Microsoft 提供,支持 C/C++ 的语法高亮、智能提示以及调试功能。 - **Qt for Visual Studio Code 或类似插件**:此插件有助于简化 QT 项目文件的管理和操作,尽管它的功能性可能不及官方 IDE Qt Creator[^1]。 3. **配置任务 (Tasks) 文件** 要使 VSCode 能够正常编译和运行 QT 项目,需定义一个适合的任务脚本。点击菜单栏中的 “终端 -> 配置默认生成任务”,然后选择 “创建 tasks.json 文件”。编辑后的 `tasks.json` 应类似于下面的内容: ```json { "version": "2.0.0", "tasks": [ { "label": "Build with qmake and make", "type": "shell", "command": "/bin/bash", "args": ["-c", "cd ${workspaceFolder} && qmake && make"], "group": "build", "problemMatcher": [] } ] } ``` 4. **设置 launch.json** 接下来为程序添加启动配置以便于调试。同样,在 `.vscode/launch.json` 中加入如下片段即可满足基本需求: ```json { "version": "0.2.0", "configurations": [ { "name": "(gdb) Launch", "type": "cppdbg", "request": "launch", "program": "${workspaceFolder}/your_executable_name", "args": [], "stopAtEntry": false, "cwd": "${fileDirname}", ".envFile": "${workspaceFolder}/.env", "externalConsole": true, "MIMode": "gdb" } ] } ``` 5. **新建或导入 QT 项目** 使用上述配置完成后,可以直接利用模板或者已有代码库建立新的 QT 项目;也可以从外部源码目录克隆现有工程到本地磁盘再加载至 VSCode 当前工作区之中[^4]。 --- #### 注意事项 虽然 VSCodeQT 的支持正在逐步增强,但在某些高级特性方面仍可能存在局限性。如果遇到复杂场景下的问题,则建议切换回专用IDE——即 Qt Creator 来处理更为复杂的工程项目结构等问题。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值