Ubuntu系统中Qt连Postgresql的问题解决

在Ubuntu系统中,作者遇到了Qt连接Postgresql数据库的问题,即尽管Qt4.8.6的plugins目录下存在Postgresql驱动,但运行时仍提示找不到驱动。经过一系列尝试和排查,发现问题是运行时的动态链接库路径设置不正确。解决方案是将qt4.8.6的LD_LIBRARY_PATH从/opt/qt4.8.6/lib改为/opt/qt4.8.6,确保正确加载plugins目录下的驱动库。同时,作者发现qt5.2.1可以找到sqlite驱动,因为其LD_LIBRARY_PATH包含了另一个qt4的目录,该目录下有libsqlite.so。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

昨天遇到一个很蛋疼的问题, 折腾了一天都没解决, 今天突然间就解决了, 晕.


        问题是这样的: 在Windows系统下, Qt连接数据库Postgresql是需要自己去Qt源码里手动编译Postgresql驱动的, 然后把生成的动态连接库放到Qt的安装目录里面的插件目录plugins中. 当我跑到Ubuntu系统下去做时, 发现在我的qt4.8.6的目录/opt/qt4.8.6/plugins/sqldrivers下是有libqsqlite.so和libqsqlpsql.so的, 也就是说qt已经自带了Postgresql的驱动了. 然后我直接编译完项目, 运行时居然提示没有找到数据库驱动, 而且不但psql的驱动找不到, 连基本的sqlite都没找到.


我这就很郁闷了, 明明驱动就在那里, 为什么就说没有呢?


我系统里面还装了qt5.2.1, 我便试着在5.2.1上面重新编译运行, 发现只找到了sqlite的驱动, 没有找到psql的驱动. 我跑去它的plugins/sqldrivers目录下, 发现确实只有libsqlite.so.


那么, 问题来了, qt5.2.1找到了sqlite的驱动, 为什么qt4.8.6就没有找到了?


我一直认为是编译的时候链接的某路径有问题, 但一直不得其解.


直到今天, 我重写开启qtcreator, 直接运行程序, 发现居然连接上数据库了! 然后我重写编译, 又说没有发现数据库驱动!这是
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值