解决VS2019+Qt5+Vcpkg工程无法调试但Release正常运行的问题

news2024/10/6 4:05:44

前言——这个问题可能比较小众,但是因为解决了我自己的问题,所以特此把解决方法分享出来,以给特定的人提供必要的帮助。

项目原因,一直使用VS2019+Qt5+Vcpkg,无奈程序一直无法进行调试,Release模式倒是正常运行,按照正常新建工程的步骤,直接进行debug模式的调试,则会出现如下错误:

已启动生成…
1>------ 已启动生成: 项目: qt5VcpkgDebugProblem, 配置: Debug x64 ------
1>Reading Qt configuration (E:/libs/vcpkg/installed/x64-windows/tools/qt5/bin/qmake)
1>LINK : fatal error LNK1104: 无法打开文件“E:\libs\vcpkg\installed\x64-windows\lib\Qt5Widgetsd.lib”
1>已完成生成项目“qt5VcpkgDebugProblem.vcxproj”的操作 - 失败。
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========

此时可以注意到一个路径问题,其实这个路径问题是因为qt中debug路径没有配置正确,而引起debug路径没有配置正确的原因,是因为当时选择qt版本的时候,没有选择debug模式,如下图所示:

我们可以在项目配置中对此进行更改,如下图所示:

但是你会发现,问题不仅没有得到解决,反而似乎导致了更多的问题。

 

已启动生成…
1>------ 已启动生成: 项目: qt5VcpkgDebugProblem, 配置: Debug x64 ------
1>Reading Qt configuration (E:/libs/vcpkg/installed/x64-windows/tools/qt5/debug/bin/qmake)
1>uic qt5VcpkgDebugProblem.ui
1>rcc qt5VcpkgDebugProblem.qrc
1>moc qt5VcpkgDebugProblem.h
1>C:\Users\Administrator\AppData\Local\QtMsBuild\qt_globals.targets(269,5): error MSB4181: “QtRunWork”任务返回了 false,但未记录错误。
1>已完成生成项目“qt5VcpkgDebugProblem.vcxproj”的操作 - 失败。
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========

你当然可以沿着这个问题继续往下解决,但是我发现此时已经陷入死胡同,我只不过是想对新写的代码进行调试,其实对于qt部分使用debug或者release的库,我并不关心,而且因为我注意到release版本的程序正常运行,于是我进行了一个特别的尝试。

在debug配置下,将BuildConfig改为Release,其他不改变!

此时,你会发现程序正常编译通过了,并且提示了缺少qt运行平台的问题,看到这个问题,我们知道程序已经成功生成了,我们只需要使用windeployqt命令将缺少的库加入即可!当然,至此我们还没有确定成功达成调试的目标,稍后测试。

此时,你直接使用windeployqt对debug的程序进行操作,会发现可能无法正确找到对应的dll,因为此时的配置是混用的,比如我就碰到了如下错误:

Unable to locate ICU library icudtd69.dll

即便找到了对应的 icudtd69.dll,加入到exe目录,再次windeployqt,错误依旧,此时我们得换一个思路了,编译Release版本,然后寻找对应的dll。

对于Release版本的exe进行windeployqt操作,一切正常。

此时,我们仍然发现报错:

找到对应的E:\libs\vcpkg\installed\x64-windows\plugins\platforms\qwindows.dll,保证目录结构如下图:

将除exe之外的所有依赖文件,包括paltforms文件夹,拷贝到对应的debug目录,如下图所示:

此时,直接运行debug版本的exe,我们可以发现程序正常运行了!

接下来,尝试调试,为了看到调试效果,写了几行冗余代码,并且可以看到调试信息。

至此,问题得到解决!

中间过程稍微有点多,因为你可能会碰到各种各样的问题,需要耐心依次解决。

这个问题的解决方法并不是标准的解决方法,因为采用了混配debug合release的配置,只能说这是一个临时解决VS2019+Qt5+Vcpkg工程无法调试的办法。

如果大佬们有更好的解决办法,欢迎交流与分享。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/137023.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机图形学 Ray Trace 学习笔记

屏幕上的一个像素,是通过各种反射、折射而共同组成的,每个反射折射的点,都会考虑光源是否有直接照射到反射折射的点上,反射与折射之间会存在能量衰减,最终汇总在屏幕的像素上。 计算是哪一个三角形被射线打中&#xff…

Hive SQL 每日SQL

1、查询订单明细表(order_detail)中销量(下单件数)排名第二的商品id,如果不存在返回null,如果存在多个排名第二的商品则需要全部返回。 需要用到的表: 订单明细表:order_detail 代码…

【谷粒商城基础篇】仓储服务:仓库维护

谷粒商城笔记合集 分布式基础篇分布式高级篇高可用集群篇简介&环境搭建项目简介与分布式概念(第一、二章)基础环境搭建(第三章)整合SpringCloud整合SpringCloud、SpringCloud alibaba(第四、五章)前端知…

android 创建aar包

1. 背景 由于新入职公司在做硬件接入的项目,需要接入多款硬件,而且,几个app的功能不太一样。于是,需要模块化开发,并且许多东西都是可以复用的(像网络框架、log、shareprefrence、权限申请等)。…

嵌入式HLS 案例开发步骤分享——Zynq-7010/20工业开发板(1)

目 录 前 言 3 1 HLS 开发流程说明 5 1.1 HLS 工程导入 5 1.2 编译与仿真 6 1.3 综合 8 1.4 IP 核封装 10 1.5 IP 核测试 14 前 言 本文主要介绍 HLS 案例的使用说明,适用开发环境: Windows 7/10 64bit、Xilinx Vivado 2017.4 、Xilinx Vivado HLS 2017.4 、Xilinx…

数据结构|排序算法详解

​​​​​​​目录 一.插入类 1.直接插入排序 2.希尔排序 二.选择类,排一次选出一个最值 1.选择排序 2.堆排序 三.交换类,通过一直交换一次确定数字的位置 1.冒泡排序 2.快速排序 2.1 hoare版本 2.2挖坑法 2.3前后指针法 四.归并类 1.归并…

Go第 5 章:程序流程控制

第五章程序流程控制 5.1程序流程控制介绍 在程序中,程序运行的流程控制决定程序是如何执行的,是我们必须掌握的,主要有三大流程控 制语句。 1)顺序控制 2)分支控制 3)循环控制 5.2 顺序控制 程序从上到下逐行地执行,中间没有任…

C++标准库的智能指针:shared_ptr、weak_ptr和unique_ptr

文章目录智能指针shared_ptr模版类week_ptr模版类unique_ptrC中是没有内存回收机制的,我在之前的一篇文章中提到使用指针的一些基本方法。C在std标准库中也提供了三种封装过的指针模版类,称作为智能指针:shared_ptrunique_ptrweek_ptr 我这里…

JVM性能调优详解

前面我们学习了整个JVM系列,最终目标的不仅仅是了解JVM的基础知识,也是为了进行JVM性能调优做准备。这篇文章带领大家学习JVM性能调优的知识。 性能调优 性能调优包含多个层次,比如:架构调优、代码调优、JVM调优、数据库调优、操…

最优二叉树(哈夫曼树)

一、最优二叉树 1、定义 官方定义:在权值为w1,w2,…,wn的 n个叶子所构成的所有二叉树中,带权路径长度最小(即代价最小)的二叉树称为最优二叉树或哈夫曼树。 通俗来讲,就是给定N个权值作为N个叶子结点&…

仿牛客论坛项目总结

一.数据库中每一张表有哪些字段 user表 用户表 (1)id 用户的id (2) username 用户名 (3)password 密码 (4)salt 盐 (5)emai邮箱 (6&…

PAT甲级1008 Elevator C++/C语言

1008 Elevator 分数 20 作者 CHEN, Yue 单位 浙江大学 The highest building in our city has only one elevator. A request list is made up with N positive numbers. The numbers denote at which floors the elevator will stop, in specified order. It costs 6 seconds …

联邦学习将如何影响您的日常生活?

人工智能 (AI) 被认为是下一次工业革命的最大创新之一,其中包括机器学习。另一方面,随着原油和电力成为现代工业的基础资源,数据成为人工智能和机器学习的关键要素。 数据隐私与需求之间的冲突 训练的数据样本的大小决定了可用于增强 AI 性能…

CPT203-Software Engineering(2)

文章目录5. Scrum Framework5.1 Scrum Roles5.2 Scrum Activities and Artifacts6. Requirements Engineering6.1 User requirements and system requirements6.2 Functional & Non-functional requirements6.2.1 Functional requirements6.2.2 Non-functional requirement…

第一章:C++算法基础之基础算法

系列文章目录 文章目录系列文章目录前言一、排序(1)快速排序核心思想思路分析模板(2)归并排序核心思想思路分析模板稳定性时间复杂度二分查找(1)整数二分核心思想思路分析模板(2)浮点…

jetson nano系统引导安装(无外设安装方式)

文章目录一.硬件设置二.系统设置一.硬件设置 插入烧写好系统的SD卡将micro USB线接到jetson nano上,另一端USB A接到电脑上为jetson nano插入电源,开机等待电脑检测到如下盘符说明jetson nano连接成功 二.系统设置 进入电脑的设备管理器,查…

【linux】三种权限的使用和更改、粘滞位和yum的使用

目录 1.权限问题 ①什么是权限? ②小问题 ③默认权限 ④如何更改“人”的权限呢? ⑤更改权限的八进制方案 ⑥强制改权限里的“人”(权限人文件属性) 2.粘滞位 2.yum的使用 1.权限问题 ①什么是权限? 权限人&a…

HTTP协议解析

HTTP概述 HTTP (全称为 "超文本传输协议") 是一种应用非常广泛的应用层协议~~我们平时打开一个网站, 就是通过 HTTP 协议来传输数据的。 HTTP工作过程: 当我们在浏览器中输入一个 "网址",此时浏览器就会给对应的服务器发送一个 H…

CTF中的PHP特性函数(上)

前言 对于PHP大家一定不陌生,但你知道PHP在CTF中是如何考察的吗,本文给大家带来的是通过PHP特性来进行CTF比赛中解题出题的知识,会介绍一下CTF中常见的php特性以及围绕该知识点的相关案例,因为内容过多这里分成上中下三篇来讲&am…

操作系统的特征

文章目录🎀前言:本篇博客知识总览🍔并发🎇概念:🍔共享🎇概念:🍔虚拟🎇概念:🍔异步🎇概念:🏳️‍&a…