zoukankan      html  css  js  c++  java
  • Qt Sqlite qwt 发布过程中碰到的问题runtime error

    qt版本:4.8.0

    qwt版本:6.1.2

    使用dll show检测缺少的dll,或者笨一点的方法,点击运行差什么找什么放进去;

    左上显示exe调用哪些dll,右边是dll又再次调用啦哪些dll;

    全部的dll都加在进去了还是不行,参考了以下几个blog

    http://walkerqt.blog.51cto.com/1310630/1256745

    http://blog.csdn.net/lulinqing/article/details/10895401

    https://www.cnblogs.com/smoozer/archive/2009/06/12/1486382.html

    等,若干,但是发现并非如此,后来我怀疑是不是越界了【这边发现qsqlquery 这个变量去获取数据库的数据不能再作为私有成员去使用,否则会崩,后面使用我是在哪里用就在哪里定义一个,这个具体不知道qt是怎么回事的,望高手解答】,debug下反汇编结果也没找到想要的答案,在自己的电脑上没有环境配置,直接添加上述dll即可运行,

    后来经过错误日志输出,找到问题是sqlite这边的驱动未加载,但是在模块中明显能输出自带sqlite的驱动,随后怀疑的是配置文件驱动这块,发现添加的文件中,

    sqlite调用驱动文件是使用sqldrivers文件夹中的驱动,而我直接是把里面的全部文件拿出来,这就导致程序直接崩溃,sqlite找不到驱动,但是即使放到文件夹下,

    名称不是sqldrivers一样是崩溃,【经过测试把qt安装目录下,plugins/sqldrivers,这个文件夹改了名字,在自己的电脑下一样是崩溃的】。

    所以总结出,驱动调用的问题,导致runtimes,但是这只是qt环境下,并非VC++x.0,非MS的问题,希望读者看清楚了。

    以及qwt不能qdebug跟release混编,

    解决办法:

    先把qwtd.dll  qwt.dll考到新建文件夹lib下,然后对应使用的编译方式就调用对应的dll

    在pro工程文件中调用:

    debug:      LIBS += -L$$PWD/lib/  -l pwtd               //debug编译的时候就把下面release注释

    release :  LIBS += -L$$PWD/lib/  -l pwt                 //同理要发布的时候则把上面debug给注释掉否则会崩溃

    注意:不能同时调用,即不能混合编译默认调用第一条,若是debug在release,然后运行release的话一样会出现runtime error,

    用debug的时候把release给注释掉就好了,相反使用release也是同理。 

  • 相关阅读:
    神通广大的CSS3选择器
    CF1153E Serval and Snake【构造】
    CF1153F Serval and Bonus Problem 【期望】
    李超线段树学习笔记
    Luogu5327【ZJOI2019】语言【树上差分,线段树合并】
    Luogu4191 [CTSC2010]性能优化【多项式,循环卷积】
    Codeforces Round #564 比赛总结
    CF917D Stranger Trees【矩阵树定理,高斯消元】
    【CTS2019】珍珠【生成函数,二项式反演】
    斯特林数学习笔记
  • 原文地址:https://www.cnblogs.com/liuruoqian/p/6071228.html
Copyright © 2011-2022 走看看