当前位置: 首页 > article >正文

vscode-QT环境配置

vscode-QT环境配置

参考链接:https://www.cnblogs.com/RioTian/p/18281114

一、 背景

  1. 已经安装了QT软件,电脑里有了QT Creater 12.0。
  2. 使用QT生成并运行了一个project
  3. 在这个project的基础上,直接配置vscode的环境

二、环境配置

  1. 确认QT工程成功运行

  2. 确认QT的运行配置

    • 这个看起来是构建的配置

      在这里插入图片描述

    • 运行路径看起来没什么特别的,就是执行exe文件
      在这里插入图片描述

  3. 用构建命令运行一下

    • 点击详情,确认一下工具的地址 在这里插入图片描述

      如果需要的话,后续这个工具应该配置到环境变量里面。方便一点

    • qmake运行pro文件

      • qmake.exe …/LogTool.pro
        在这里插入图片描述
        在这里插入图片描述

        可能是一些需要的环境配置吧,不太懂makefile 在这里插入图片描述

      • 执行的时候把所有参数都去了,等有问题再回来研究参数吧

      • 后半段有个make的运行,再试试:make qmake_all
        在这里插入图片描述

        在这里插入图片描述

      • 用了原命令也报相同的问题。暂时忽略,直接进入第二步,正好也是make

    • D:\Software\Qt6\Tools\mingw1120_64\bin\mingw32-make.exe -j4 in ./debug

      • 模仿原命令写的,报错了
        在这里插入图片描述

      • in应该是个伪代码,重新尝试一下先进入命令,然后运行make
        在这里插入图片描述

      • 确认结果

        debug目录多了一些东西
        在这里插入图片描述

        看起来问题不大,但是无法运行。。。。
        在这里插入图片描述

      • 应用无法在电脑上运行

        QT环境配置的时候就踩过这个坑
        在这里插入图片描述

        之前的结论是,release的命令好使

        • 使用release的命令 + mingw32-make编译到debug目录
          在这里插入图片描述

          重新生成了一下,debug目录还是无法运行

        • 用release的命令 + make试一下

          在这里插入图片描述
          在这里插入图片描述

          可以确认应用无法运行的问题解决了

        • 回顾一下QT的编辑log

          在这里插入图片描述

          按照这个设置输命令,在debug目录生成了exe,直接执行也会提示版本不对,无法执行。换成之前配置过的mingw包里面的make就行了

          D:\Software\Qt6\6.6.3\mingw_64\bin\qmake.exe ../LogTool.pro -spec win32-g++ "CONFIG+=debug" "CONFIG+=qml_debug"

          make -j7 release

          以下是版本参考
          在这里插入图片描述

        • 配置环境变量,解决库的问题

          在这里插入图片描述

          需要将Qt的mingw放到原有的mingw上,否则会提示引用的库找不到入口点

          https://blog.csdn.net/weixin_44965579/article/details/141187782

          但是这样设置的话,运行exe其实还是依赖环境变量。不是最优解法……

        • 添加依赖库

          https://blog.csdn.net/Zander0/article/details/121741365

          D:\BasicSetting\Qt_mingw64\bin\windeployqt.exe LogTool.exe

          在这里插入图片描述

  4. 确认编译步骤

    • D:\Software\Qt6\6.6.3\mingw_64\bin\qmake.exe ../LogTool.pro -spec win32-g++ "CONFIG+=debug" "CONFIG+=qml_debug"
    • make -j7
    • windeployqt LogTool.exe
  5. 安装Vscode的相关插件

    • QT UI

      • 用以读取.ui文件

        在这里插入图片描述

      • ctrl+shift+p
        在这里插入图片描述

        在这里插入图片描述

  6. 配置ui文件

    • 配置launch.json

      上面装组件的方式,没有成功运行Designer,于是放弃

      launch的方式配置。每次打开ui文件,执行用Designer.exe打开ui文件的命令,达到类似的效果

      {
          "version": "0.2.0",
          "configurations": [        
              {
                  "name": "ui Set",
                  "type": "cppdbg",
                  "request": "launch",
                  "program": "D:\\BasicSetting\\Qt_mingw64\\bin\\designer.exe",
                  "cwd": "${workspaceFolder}",
                  "stopAtEntry": false,
                  "externalConsole": false,
                  "args": [
                      "${file}"
                  ],
                  "setupCommands": [
                      {
                          "description": "Enable pretty-printing for gdb",
                          "text": "-enable-pretty-printing",
                          "ignoreFailures": true
                      }
                  ]
              }
          ]
      }
      
  7. Qt编译环境配置

    • 配置launch.json

      {
          "version": "0.2.0",
          "configurations": [
              {
                  "name": "QtBuild",
                  "type": "cppdbg",
                  "request": "launch",
                  "program": "${fileDirname}/Out/release/${relativeFileDirname}.exe",
                  "args": [],
                  "stopAtEntry": false,
                  "cwd": "${fileDirname}",
                  "environment": [],
                  "externalConsole": false,
                  "MIMode": "gdb",
                  "preLaunchTask": "QtBuild",
                  "setupCommands": [
                      {
                          "description": "Enable pretty-printing for gdb",
                          "text": "-enable-pretty-printing",
                          "ignoreFailures": true
                      },
                      {
                          "description": "Set Disassembly Flavor to Intel",
                          "text": "-gdb-set disassembly-flavor intel",
                          "ignoreFailures": true
                      }
                  ]
              },
              {
                  "name": "ui Set",
                  "type": "cppdbg",
                  "request": "launch",
                  "program": "D:\\BasicSetting\\Qt_mingw64\\bin\\designer.exe",
                  "cwd": "${workspaceFolder}",
                  "stopAtEntry": false,
                  "externalConsole": false,
                  "args": [
                      "${file}"
                  ],
                  "setupCommands": [
                      {
                          "description": "Enable pretty-printing for gdb",
                          "text": "-enable-pretty-printing",
                          "ignoreFailures": true
                      }
                  ]
              }
          ]
      }
      
    • 配置tasks.json

      {
          "version": "2.0.0",
          "tasks": [
              {
                  "label": "createOut",
                  "type": "shell",
                  "group": {
                      "kind":"build",
                      "isDefault": true
                  },
                  "command": "PowerShell",
                  "args": [
                      "if (-not (Test-Path \"Out\")) { New-Item -ItemType Directory -Path \"Out\" }" //Power shell的命令,找out目录,如果没有就创建文件
                  ],
                  "options": {
                      "cwd": "${fileDirname}",
                  }
              },
              {
                  "label": "ProBuild",  //在out目录下,编译pro文件
                  "type": "shell",
                  "command": "D:\\BasicSetting\\Qt_mingw64\\bin\\qmake.exe",
                  // "command": "ls",
                  "problemMatcher": [],
                  "args": [
                      "${fileDirname}\\${relativeFileDirname}.pro"
                  ],
                  "options": {
                      "cwd": "${fileDirname}\\Out\\",
                      "shell": {
                          "executable": "PowerShell"
                      }
                  },
                  "dependsOn":[
                  ],
              },
              {
                  "label": "makeFile", //在out目录下,将makefile生成为exe
                  "command": "D:\\BasicSetting\\mingw64\\bin\\make.exe",
                  // "command": "ls",
                  "args": [
                      "-j8",
                      "release"
                  ],
                  "options": {
                      "cwd": "${fileDirname}\\Out\\"
                  },
                  "dependsOn":[
                  ],
              },
              {
                  "label": "deployDll",  //将exe需要的部署到此目录
                  "command": "D:\\BasicSetting\\Qt_mingw64\\bin\\windeployqt.exe",
                  // "command": "ls",
                  "args": [
                      "${relativeFileDirname}.exe"
                  ],
                  "options": {
                      "cwd": "${fileDirname}\\Out\\release",
                      "shell": {
                          "executable": "PowerShell"
                      }
                  },
                  "dependsOn":[
                  ],
              },
      
              {
                  "label": "QtBuild",   //launch的QtBuild的前置程序
                  "dependsOrder": "sequence", //依赖task的运行顺序是顺序执行的(另外一个选项是并行)
                  "dependsOn":[
                      "createOut", //创建out目录
                      "ProBuild",  //编译Pro文件
                      "makeFile",  //make命令
                      "deployDll"  //部署依赖的库
                  ],
              }
          ]
      }
      

http://www.kler.cn/a/455323.html

相关文章:

  • 计算属性 简写和 完整写法
  • RustDesk内置ID服务器,Key教程
  • 条件语句 - if, else, switch-case
  • “游戏信息化”:游戏后台系统的未来发展
  • 【c语言】简单的c程序设计
  • 芯片Tapeout power signoff 之IR Drop Redhawk Ploc文件格式及其意义
  • uniapp中Nvue白屏问题 ReferenceError: require is not defined
  • TOTP双因素认证(2FA)php简单实现
  • 利用 Python 编写一个 VIP 音乐下载脚本
  • 软体机器人研究报告:设计方法、材料与驱动、感知与控制
  • 【MuJoCo和PhysX】
  • GFPS扩展技术原理(十)-FMDN Notification
  • MFC案例:图片文件转图标(ico)格式
  • pathlib:面向对象的文件系统路径
  • 计算机网络:应用层 —— 网络应用模式
  • FPC在蓝牙耳机中有哪些应用?【新立电子】
  • 麒麟操作系统服务架构保姆级教程(六)部署PHP环境
  • 图片拼接|横向拼接|竖向拼接|正方形拼接|其他模式拼接 python
  • Docker【初识Docker】
  • 如何找出OSS的引用所有的头文件
  • 【Springboot知识】Springboot进阶-实现CAS完整流程
  • 计算机网络 (10)网络层
  • LinkedList类 (链表)
  • 线性代数行列式
  • ABC 385G(Counting Buildings-多项式)
  • Perl 特殊变量