配置VsCode的QT工程

VsCode + qmake

环境(Environment):

Windows11

Qt5.12.11+ MinGW64 编译套件

VsCode (version = 1.78.2)


一、命令行编译运行QT程序

在使用VsCode配置QT程序之前,我们应该需要知道如何通过命令行来编译以及运行QT工程。

下面是我个人常用的方式,可以参考:

1. 使用QtCreator创建一个qmake工程。

2. 使用qmake命令生成Makefile文件

  • 打开工程目录 (.pro所以位置)

  • 在工程目录下进入终端(当然也可以先打开终端,然后cd 到你的工程下)

  • 创建一个build文件夹,这样可以避免编译生成的文件散落在工程目录下

  • 进入到build文件夹

  • 执行qmake ../XXX.pro (因为.pro文件是在build文件夹的上一层)

  • 执行mingw32-make -j16 debug

  • 进入build下的debug文件夹,此时可以看到生成了xxxx.exe可执行文件

  • 双击 xxx.exe 运行,自此结束。

    可能遇到的错误:

    PS D:\Desktop> qmake ../Demo.pro
    qmake : 无法将“qmake”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名
    称的拼写,如果包括路径,请确保路径正确,然后再试一次。

    如果你遇到了上面情况,请注意检查是否添加下面两条环境变量

    • qmake.exe 所在的bin目录

    • mingw32-make.exe 所在的bin目录


二、配置VsCode+QT

1.安装VsCode插件

  • 确保你的VsCode程序中安装有C\C++ Extension Pack插件,如下图

2.使用VsCode打开你的QT工程

  • 演示如下

    打开之后,点开main.cpp,此时应该会看到,头文件的部分报错。请看下面第2点解决。

2.添加包含的头文件路径,即include文件夹所在位置

如果指定头文件的路径,VsCode就不知道你的代码里面的头文件是在哪里,导致代码报红

这是我QT的mingw64编译套件对应的头文件路径 D:\\Qt\\Qt5.12.11\\5.12.11\\mingw73_64\\include\\**

请根据自己的来修改。

  • 记得把路径的\更换成\\或者用/表示

  • 记得在include后面加上两个*,表示遍历这个目录下的所有头文件(不知道的话,照着做就行了)

    演示如下:

3.配置launch.json和tasks.json

  • .vscode文件夹下创建tasks.json(如果没有这个目录就自己建一个)

  • 将下面内容粘贴到tasks.json文件里

    {
    "tasks": [ // 任务:qmake 根据.pro文件生成 Makefile,通常是.pro文件改动后才需要执行
    // 这个任务的执行等效命令行 >> cd build
    // >> qmake ../Demo.pro
    {
    "type": "shell",
    "label": "qmake",
    "options": { // cwd的意思是执行这个命令的时候,所在的目录
    // 这里我们指定为工程目录下的build文件夹,这样的话
    // 当执行qmake的时候,产生的中间文件就在build文件夹下面了
    "cwd": "${workspaceFolder}\\build"
    },
    "command": "qmake", //command 命令,这个不用说了
    "args": [
    // qmake后面跟的参数,因为上面cwd配置为build目录,
    // 所以.pro文件应该在build的上一级,所以使用../*.pro
    "../*.pro"
    ],
    }, // 任务:编译 每次修改代码后都需要执行
    // 任务等效命令行 >>make -j16 debug
    {
    "label": "make",
    "options": {
    "cwd": "${workspaceFolder}\\build"
    },
    "group": {
    "kind": "build",
    "isDefault": true
    },
    "command": "make",
    "args": [
    "-j16",
    "debug"
    ],
    "dependsOn": [
    //"qmake"
    ]
    }, // 任务:清理 等效命令行 make clean
    {
    "label": "clean",
    "options": {
    "cwd": "${workspaceFolder}\\build"
    },
    "command": "make",
    "args": [
    "clean"
    ]
    }, // 运行程序
    {
    "label": "run",
    "options": {
    "cwd": "${workspaceFolder}\\build\\debug"
    },
    "command": "${workspaceFolderBasename}.exe",
    "args": [
    ""
    ],
    "dependsOn": [
    "make"
    ]
    }
    ],
    "version": "2.0.0"
    }

    配置tasks.json演示如下:

  • 在.vscode文件夹下新建launch.json 并且粘贴下面内容

    {
    "version": "0.2.0",
    "configurations": [
    {
    "name": "gdb",
    "type": "cppdbg",
    "request": "launch",
    "program": "${fileDirname}\\build\\debug\\Demo",//程序可执行文件的完整路径。
    "args": [],
    "stopAtEntry": false,
    "cwd": "${fileDirname}",
    "environment": [],
    "externalConsole": false,
    "MIMode": "gdb",
    //"miDebuggerPath": "D:\\Qt\\Qt5.12.11\\Tools\\mingw730_64\\bin\\gdb.exe",
    "setupCommands": [
    {
    "description": "为 gdb 启用整齐打印",
    "text": "-enable-pretty-printing",
    "ignoreFailures": true
    }
    ],
    // 调试之前先编译一下,即对应tasks.json任务中的make
    "preLaunchTask": "make"//与tasks.json文件里的label名对应
    }
    ]
    }

    配置launch.json演示如下:


三、运行与调试

1.运行程序

  • 点击VsCode顶部菜单栏的终端>>运行任务>>qmake

  • 同样点击顶部菜单栏的终端>>运行任务>>make

  • 终端>>运行任务>>run

    演示如下:

2.调试程序

  • 万能的VsCode怎么能少了调试呢

    演示如下:

    演示用的Demo工程已上传至GitHubGitee

    自此完结,撒花!!!

配置VsCode的QT工程的更多相关文章

  1. [转]QT4.8.5+qt-vs-addin-1.1.11+VS2010安装配置和QT工程的新建和加载

    1.下载windows下的QT库 QT4.8.5 for vs2010: http://download.qt-project.org/official_releases/qt/4.8/4.8.5/q ...

  2. QT4.8.5+qt-vs-addin-1.1.11+VS2010安装配置和QT工程的新建和加载

    1.下载windows下的QT库 QT4.8.5 for vs2010: http://download.qt-project.org/official_releases/qt/4.8/4.8.5/q ...

  3. 使用 VSCode 给STM32配置一个串口 printf 工程

    使用 VSCode 给STM32配置一个串口 printf 工程 gcc 重定向 printf 和 keil 不一样. 文件准备 先从以前的工程中拷过一份串口的代码来,然后在 main 函数中初始化串 ...

  4. Qt工程打包发布

    Qt版本 5.7.1 1.添加环境变量 在..\Qt5.7.0\5.7\msvc2013_64\bin(..省略了盘符,例如我的是D:\Qt\Qt5.7.0\5.7\msvc2013_64\bin) ...

  5. Qt 工程 pro文件

    工作中,感觉pro文件的有些内容真不太懂,现系统性的学习一下.于此备录,分享共勉. 为了更好的理解,先创建一个简单的工程作为实践. [1]创建一个pro文件 1.1 新建proDemo工程.步骤如下: ...

  6. Qt工程文件说明

    Qt工程文件说明 2017-10-16  天天快乐6...  转自 LZS2851 修改   微信 分享: 这篇文章是我从360doc上转的,本来是要把转的url列出来的,但是它们居然禁掉了复制,而且 ...

  7. Linux下使用VsCode进行Qt开发环境搭建

    最近在Linux上搞Qt, vim环境还用不太习惯, QtCreator之前使用时莫名其妙崩溃然后丢失代码之后就被我彻底放弃了, 于是研究了一下用VsCode进行Qt开发. 首先是系统环境和下载安装包 ...

  8. VC6中创建Qt工程的创建

    文章来源:http://blog.sina.com.cn/s/blog_64d015c10100sf1o.html 本文主要介绍怎么创建可以在VC6中编译的QT工程.本文所采用环境为VC++6.0+Q ...

  9. 编辑器配置 vscode / Atom / Sublime Text

    vscode配置 https://code.visualstudio.com/docs/languages/cpp https://www.zhihu.com/question/30315894/an ...

  10. 非Qt工程使用Qt的信号槽机制

    非Qt工程,使用Qt的信号槽机制,蛋疼不?反正我现在就是要做这样一件蛋疼的事. 要使用Qt的信号槽机制,下面是从Qt Assist里面关于 signal & slots 的一句介绍: All ...

随机推荐

  1. springboot实现验证码功能

    实现验证码功能 先在utils包下创建一个ValidateImageCodeUtils.class package com.wfszmg.demo.utils; import javax.imagei ...

  2. Redis 缓存雪崩 |击穿 |穿透 概念及解决方案

    一.雪崩 1.概念  指某一时间段,缓存集中过期失效,无数的请求绕开缓存,直接访问数据库. 2.解决方案 让redis数据永不过期,这种方式最可靠的.最安全的,但占用空间,内存消耗大,并且不能保持数据 ...

  3. gralde-plugin->docker-compose的使用

    在java web项目中,本地开发经常会需要在本地使用docker启动数据库等之类的服务.gradle提供了一个插件,允许通过gradle task启动docker的容器.在这里我们介绍的一个gral ...

  4. CTF-RE-学习记录-汇编

    八进制运算 加法表 1+1=2 1+2=3 2+2=4 1+3=4 2+3=5 3+3=6 1+4=5 2+4=6 3+4=7 4+4=10 1+5=6 2+5=7 3+5=8 4+5=11 5+5= ...

  5. [Nginx/Linux/CENTOS]安装Nginx

    1 基本信息 服务器OS : Linux CENTSO 7.9 待安装的Nginx版本: NGINX 15.12 2 安装过程 step1 下载安装包 # cd /usr/local/software ...

  6. [数据库]MYSQL之存储过程

    一 存储过程的特点 MySQL 5.0 版本开始支持存储过程 1.1 定义 存储过程(Stored Procedure)是一种在数据库中存储复杂程序,以便外部程序调用的一种数据库对象. 存储过程是为了 ...

  7. 2.自定义@Excel注解实现数据Excel形式导入导出

    前言 这几天在学习如何使用自定义注解实现Excel格式数据导入导出,参考的还是若依框架里面的代码,由于是初学,所以照猫画虎呗,但是难受的是需要复制并根据自己项目修改作者自定义的工具类以及导入这些工具类 ...

  8. MordernC++之 auto 和 decltype

    在C++11标准中,auto作为关键字被引入,可以用来自动推导变量类型,auto可以用于定义变量,函数返回值,lambda表达式等,在定义变量时可以使用auto来代替具体类型,编译器根据变量初始化表达 ...

  9. 如何使用Redis做缓存

    如何使用Redis做缓存 我们都知道Redis作为NoSql数据库的代表之一,通常会用来作为缓存使用.也是我在工作中通常使用的缓存之一. 1.我们什么时候缓存需要用到Redis? 我认为,缓存可以分为 ...

  10. Generative Pre-trained Transformer(GPT)模型技术初探

    一.Transformer模型 2017年,Google在论文 Attention is All you need 中提出了 Transformer 模型,其使用 Self-Attention 结构取 ...