【Qt问题记录2】QVTKWidget在Debug下无法运行

问题简介:

       困扰了很久的问题,自从Qt+pcl+vtk环境搭建起来后,虽然在release下能够运行,但是调试效率真的太低了,只能靠肉眼以及qDebug定位问题,实在是事倍功半,不过好在release能够直接打包,项目也刚好交出去,这次打算彻底解决这个问题,程序报错如下:

原因分析:

       在网上搜集的多方资料,大部分的原因如下:

1)搭建环境时没有区分DEBUG与RELEASE的lib文件

2)环境变量没设置好

3)Debug下和Release的dll动态库混用

      上述问题本人均一一尝试过,首先是搭建环境时没有区分lib文件的问题,仔细看了下我确实没有区分debug与Release版本,直接添加进pro文件,定位可能的问题之后,我又重新编译了下vtk,将lib文件分成两个文件夹并且包含进去,但是这么做之后还是不能编译通过,还是报出同样的错误,得出这可是原因之一,但并不是主要的原因。

       环境变量修改之后得出也并不是这个原因。

       最后关于动态库混用的问题也基本能够排除,我使用的是QVTKWidgetPlugin.dll,采用控制变量法,在把该文件在pcl的3rdParty下vtk的plugin中将这个删除之后,这个程序依然能够运行,并且debug环境下依然不能运行,可能是我没有使用UI设计师创建组件的原因,但是也能排除掉这个问题。

解决方案:

      一筹莫展之际,突然看到这位前辈的帖子,遇到的问题跟我一样,也正好能够解决我的困扰,最终成功在debug下运行;

http://t.csdn.cn/6uHa3

只需要在工程文件中添加:

CONFIG += debug
CONFIG += release

问题完美解决!!

--------------------------------------------不对,事有蹊跷----------------------------------------------------

加上这段代码之后,虽然在debug能够编译通过并且能成功运行,但是依然不能进行调试,仔细检查了下之后发现我的debug模式下使用的还是Release的动态库,至此,还是定位到vtk重新编译的问题,只好重新编译下了。

我是参照这位前辈的步骤重新编译的,很详细,亲测有效!!!!【PCL】基于C++与QT的PCL环境配置(保姆级教程)_qt pcl_Cheng先生啊的博客-CSDN博客

我的主要原因还是在上一次编译的时候没有区分debug和release版本的动态库,从而导致混用,以至于debug失效。重新编译之后,在debug动态库后缀添加-gd用以区分和调用;

至此debug运行成功!!!!

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秃头乌萨奇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值