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

62 篇文章 8 订阅

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

项目原因,一直使用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工程无法调试的办法。

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

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值