vscode-QT环境配置

server/2024/12/28 18:48:10/

vscodeQT_0">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.ppmy.cn/server/153988.html

相关文章

【网络安全 | 漏洞挖掘】如何通过竞态条件发现账户接管漏洞

未经许可,不得转载。 文章目录 背景正文设置竞态条件实现漏洞背景 目标应用允许用户创建项目。这些项目中包含多个用户角色,每个角色权限不同(如所有者、管理员、成员管理者等)。用户可通过接受邀请来加入项目,而只有项目所有者才能通过输入邮箱将项目所有权转移给其他用…

MacOS M3源代码编译Qt6.8.1

编译时间过长,如果不想自己编译,可以通过如果网盘进行下载: 链接: https://pan.baidu.com/s/17lvF5jQ-vR6vE-KEchzrVA?pwdts26 提取码: ts26 在macOS上编译Qt 6需要一些前置步骤和工具。以下是编译Qt 6的基本步骤: 安装Xcode和…

在交叉编译中,常见的ELF(elf)到底是什么意思?

ELF 是 Executable and Linkable Format 的缩写,中文翻译为“可执行与可链接格式”。它是一种通用的文件格式,主要用于存储可执行文件、目标文件(编译后的中间文件)、动态库(.so 文件)以及内存转储文件&…

社区版Dify安装时会遇到的网络问题,已成功安装

Dify安装时会遇到的网络问题,已成功安装 Dify 简介 看到这篇的都是想探索下大模型,Agent,本地搭建会怎么样。这是社区版本的安装指南,不是API版本安装。 最低配环境: 2核4G 第一步: 安装docker,docker-compose 可能存在的错误 …

蓝牙链路控制(Link Control)命令概览

目录 一、设备发现与连接管理(14条) 1.1. 设备发现 1.2. 连接建立与取消 1.3. 连接接受与拒绝 1.4. 连接断开与维护 二、设备信息查询(9条) 2.1. 基本信息查询 2.2. 安全相关信息交互 三、安全认证与加密(12条) 3.1. 认证请求与回复 3.2. 加密设置 四、同步与…

面试题整理17----K8s中request和limit资源限制是如何实现的

面试题整理17----K8s中request和limit资源限制是如何实现的 1. 资源请求(Resource Requests)2. 资源限制(Resource Limits)3. 总结 在Kubernetes(K8s)中,Pod的资源限制(Resource Lim…

PPO(近端策略优化)算法基本原理

前言 近端策略优化(PPO)算法是OpenAI在2017提出的一种强化学习算法,本文将从PPO算法的基础入手,理解从传统策略梯度算法直到PPO算法的演进过程,以及算法迭代过程中的优化细节。 一、Policy Gradient(策略梯…

springcloud2023集成 knife4j 4.4.0 如何关闭

openapi3 规范注意微服务关闭springdoc:swagger-ui:enabled: falseapi-docs:enabled: false 网关关闭 knife4j:gateway:enabled: falsestrategy: discoverdiscover:enabled: falseversion: openapi3# 需要排除的微服务(eg:网关服务)excluded-services:- api-gateway- web-www-…