预备知识

  1. bat文件,或者其他的脚本语法。
  2. qmake基本语法,qmake shadow build是啥。
  3. vscode 的task,lanch的配置。

前提

  1. 各个程序正确安装,即使用QtCreator可以正常编译调试。
  2. 使用QtCreator生成工程。

这里演示的是使用MSVC + CDB,因此VS和windows调试工具要装好。当然也是可以使用GCC + GDB的。

脚本

我这里使用bat文件。

bat文件如下:

debug版本--build_debug.cmd

  1. @echo off
  2. title qmake and nmake build prompt
  3. set VCINSTALLDIR=D:\Microsoft Visual Studio 14.0\VC
  4. set QTDIR=D:\Qt\Qt5.9.1\5.9.1\msvc2015_64
  5. set PATH=%VCINSTALLDIR%\bin;%QTDIR%\bin;D:\7-Zip;%PATH%
  6. ::shadow build
  7. cd ..
  8. set file = tips-build-debug-msvc2015_64
  9. if NOT exist %file% ( mkdir tips-build-debug-msvc2015_64
  10. cd tips-build-debug-msvc2015_64
  11. call "%VCINSTALLDIR%\vcvarsall.bat" amd64
  12. qmake ../tips/tips.pro -spec win32-msvc "CONFIG+=debug" "CONFIG+=qml_debug"
  13. nmake
  14. cd debug
  15. ::windeployqt tips.exe
  16. ::tips.exe

注意点:

  1. namke 也可以换成QT默认的jom。
  2. windeployqt 这个是QT自带的部署工具,可以搜素exe的所有依赖dll。调试的时候,若是不指定环境变量,需要将windeployqt打开,否则程序无法加载dll。当然,只要打开一次就够了,因为此时所有必要的的dll已经全部复制到程序目录下了。

release版本 -- release_debug.cmd

  1. @echo off
  2. title qmake and nmake build prompt
  3. set VCINSTALLDIR=D:\Microsoft Visual Studio 14.0\VC
  4. set QTDIR=D:\Qt\Qt5.9.1\5.9.1\msvc2015_64
  5. set PATH=%VCINSTALLDIR%\bin;%QTDIR%\bin;D:\7-Zip;%PATH%
  6. ::shadow build
  7. cd ..
  8. set file = tips-build-release-msvc2015_64
  9. if NOT exist %file% ( mkdir tips-build-release-msvc2015_64
  10. cd tips-build-release-msvc2015_64
  11. call "%VCINSTALLDIR%\vcvarsall.bat" amd64
  12. qmake ../tips/tips.pro -spec win32-msvc "CONFIG+=release" "CONFIG+=qml_release"
  13. nmake
  14. cd release
  15. ::windeployqt tips.exe
  16. tips.exe

Task

  1. {
  2. // See https://go.microsoft.com/fwlink/?LinkId=733558
  3. // for the documentation about the tasks.json format
  4. "version": "2.0.0",
  5. "tasks": [
  6. {
  7. "label": "build_debug",
  8. "type": "shell",
  9. "command": "cmd",
  10. "args": [
  11. "/c",
  12. "build_debug.cmd"
  13. ],
  14. "group": "build",
  15. "presentation": {
  16. // Reveal the output only if unrecognized errors occur.
  17. "reveal": "silent"
  18. },
  19. // Use the standard MS compiler pattern to detect errors, warnings and infos
  20. "problemMatcher": "$msCompile"
  21. },
  22. {
  23. "label": "build_release",
  24. "type": "shell",
  25. "command": "cmd",
  26. "args": [
  27. "/c",
  28. "build_release.cmd"
  29. ],
  30. "group": "build",
  31. "presentation": {
  32. // Reveal the output only if unrecognized errors occur.
  33. "reveal": "silent"
  34. },
  35. // Use the standard MS compiler pattern to detect errors, warnings and infos
  36. "problemMatcher": "$msCompile"
  37. }
  38. ]
  39. }

调试

先读这里https://github.com/Microsoft/vscode-cpptools/blob/master/launch.md,介绍了怎么配置c++的lanch文件。

然后配置文件如下:

  1. {
  2. // 使用 IntelliSense 了解相关属性。
  3. // 悬停以查看现有属性的描述。
  4. // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
  5. "version": "0.2.0",
  6. "configurations": [
  7. {
  8. "name": "CDB",
  9. "type": "cppvsdbg",
  10. "request": "launch",
  11. "program": "tips.exe",
  12. "args": [],
  13. "stopAtEntry": false,
  14. "cwd": "${workspaceFolder}/../tips-build-debug-msvc2015_64/debug/",
  15. "environment": [],
  16. //"symbolSearchPath": "C:\\Symbols",
  17. "externalConsole": true,
  18. "logging": {
  19. "moduleLoad": false,
  20. "trace": true
  21. },
  22. "visualizerFile": "my.natvis"
  23. }
  24. ]
  25. }

使用上面的配置需要先build再run,如果加上一个参数:

  1. "preLaunchTask":"build_debug"

即可实现每次按F5,自动开始重新编译并且开始调试程序。

至此,VSCode已经可以编译调试Qt的程序了。

使用VSCode 编译调试QT程序的更多相关文章

  1. VS2010 win7 QT4.8.0,实现VS2010编译调试Qt程序,QtCreator静态发布程序

    下载源代码,注意一定是源码压缩包如qt-everywhere-opensource-src-4.8.0.zip, 不是Qt发布的已编译的不同版本的标准库如qt-win-opensource-4.8.0 ...

  2. 亲测VS2010纯静态编译QT4.8.0,实现VS2010编译调试Qt程序,QtCreator静态发布程序(图文并茂,非常详细)

    下载源代码,注意一定是源码压缩包如qt-everywhere-opensource-src-4.8.0.zip,不是Qt发布的已编译的不同版本的标准库如qt-win-opensource-4.8.0- ...

  3. 【转载】Windows下VSCode编译调试c/c++

    懒得自己配置或自己配置出现不明问题的朋友可以点这里: [VSCode]Windows下VSCode便携式c/c++环境 http://blog.csdn.net/c_duoduo/article/de ...

  4. 【VSCode】Windows下VSCode编译调试c/c++【更新】

    便携版已更新,点此获取便携版 用于cpptools插件的配置文件更新 更新的launch.json // Available variables which can be used inside of ...

  5. 【VSCode】Windows下VSCode编译调试c/c++【更新 2018.03.27】

    --------– 2018.03.27 更新--------- 便携版已更新,点此获取便携版 已知BUG:中文目录无法正常调试 用于cpptools 0.15.0插件的配置文件更新 新的launch ...

  6. 【转载】【VSCode】Windows下VSCode编译调试c/c++

    转载自:http://blog.csdn.net/c_duoduo/article/details/51615381 懒得自己配置或自己配置出现不明问题的朋友可以点这里: [VSCode]Window ...

  7. 使用VS+VisualGDB编译调试Linux程序

    Linux程序开发变得越来越多,越来越多的程序.产品需要跨平台,甚至有些开源项目只支持Linux平台,所以掌握Linux开发变得越来越重要. 但是对于习惯了Windows下的开发,使用了VS这个宇宙第 ...

  8. 【笔记】【VSCode】Windows下VSCode编译调试c/c++

    转载自http://m.2cto.com/kf/201606/516207.html 首先看效果 设置断点,变量监视,调用堆栈的查看: 条件断点的使用: 下面是配置过程: 总体流程: 下载安装vsco ...

  9. VS编译的QT程序发布时产生的AppCrash问题

    至少我碰到了三个情况,都是AppCrash错误(以下都指VS2008的Release的设置) 第1个错误,报错模块是程序自己 我使用VS2008 Team with SP1和QT4.86编译程序,一直 ...

随机推荐

  1. 【python3之变量,输入输出,判断,循环】

    一.python的基础语法和规则 1.变量 ①.变量的命名规则 语法: (下划线或字母)+(任意数目的字母.数字或下划线) 变量名必须以下划线或字母开头,而后面接任意数目的字母.数字或下划线.下划线分 ...

  2. 给 Android 开发者的一点福利:免费模拟面试

    写在前面 大家好,我是「南尘」,一个爱分享爱学习的 Android 技术控.目前在 GitHub 上有着差不多 6k 的个人项目 Star 数,之前也为其他开源库贡献过大量的源码.在各大博客网站上也有 ...

  3. vagrant快速搭建LNMP环境并且打包带走留着以后用

    不多说废话,全文文字,照着输就没问题 vagrant下载 可以到VirtualBox的官网进行下载:  https://www.virtualbox.org/wiki/Downloads vagran ...

  4. Scala的安装,入门,学习,基础

    1:Scala的官方网址:http://www.scala-lang.org/ 推荐学习教程:http://www.runoob.com/scala/scala-tutorial.html Scala ...

  5. js获取指定时间的前几秒

    最近项目上有一个需求是:根据一张图片的拍摄时间获取到这个时间前二后三的一个五秒钟的视频信息,通过查找相关资料写了一个方法拿来记录分享一下. //指定时间减2秒function reduceTwoS(d ...

  6. [译]Python面试中8个必考问题

    1.下面这段代码的输出结果是什么?请解释. def extendList(val, list=[]): list.append(val) return list list1 = extendList( ...

  7. if与while相互嵌套,菱形*的实现.py

    """    *           * *         * * *       * * * *     * * * * *     * * * *       * ...

  8. dm-verity

    一.Device Mapper: dm-verity是内核子系统的Device Mapper中的一个子模块,所以在介绍dm-verity之前先要介绍一下Device  Mapper的基础知识. Dev ...

  9. Spring--AOP(面向切面)编程

    AOP 切面就像一把菜刀,将Java处理业务流程进行分割,在分割处添加特定的业务处理.主要应用于声明事务.安全和缓存.在本文中,主要介绍两种切面的实现方法--Java配置和XML配置. Java配置 ...

  10. 利用Eclipse构建SpringMVC项目

    简述 SpringBoot对Spring的的使用做了全面的封装,使用SpringBoot大大加快了开发进程,但是如果不了解Spring的特性,使用SpringBoot时会有不少问题 目前网上流传使用I ...