通过QT_DEBUG_PLUGINS调试连接PostgreSQL/MySQL时driver not loaded问题

http://user.qzone.qq.com/892054726/blog/1467784232


 参考:http://blog.csdn.net/zb872676223/article/details/24729647

  Qt的编程中包含了插件模式,使得程序的扩展性非常好,但插件的动态加载的检查也比较严格,这次编译数据库驱动插件就碰到了不少问题。实际上,可以在系统的环境变量中设置QT_DEBUG_PLUGINS=1,再执行程序加载插件时,再系统控制台上会输出许多加载插件时的调试信息,可以清楚的看到系统尝试加载了哪些插件,哪些是成功的,哪些没有成功,原因是什么都写的比较清楚。因此,如果自己编译的插件库无法加载,可以用这个方式检查以下到底是哪里的问题。

无法加载的原因基本有3种:
    1. 编译的插件库没有放在正确的目录下,程序根本没找到;
    2. 插件库运行需要其他库的支持(比如数据库驱动插件,需要额外的相关数据库连接库),如果系统没有找到这些相关库,虽然可以找到你的插件,同样会无法加载;

    3. Build Key不兼容的问题,也就是说主程序编译的环境和插件编译的环境不兼容,导致插件和主程序可能无法调用,因此Qt也无法加载这些插件。

 

 



 

发现原因是缺少libssl.so.1.0.0 。在PostgreSQL安装路径下的lib文件夹中找到该文件,复制到可执行程序目录下,再次运行:
 
缺少libcrypto.so.1.0.0。这次需要把该文件复制到/lib64目录下。
 

除了命令行下设置外,还可以在Qt Creator中设置:


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值