liunx下qt的unixODBC的驱动文件libqsqlodbc.so中依赖的路径指向问题

坑挺深搞了1天多.......记录一下

安装完unixodbc和freetds后,测试与SQL server连接,连接成功,测试qt与SQL server连接,连接失败。

在编译qt的安装目录下找到odbc文件后,进行编译,生成了libqsqlodbc.so文件,将其移动到

/opt/Qt5.14.2/5.14.2/gcc_64/plugins/sqldrivers下,测试连接,以失败告终。

于是检查libqsqlodbc.so文件的依赖

sudo ldd libqsqlodbc.so

依赖关系如下

linux-vdso.so.1 (0x00007ffe829cd000)
 libodbc.so.2 => /usr/local/lib/libodbc.so.2 (0x00007f90cc7bc000)
 libQt5Sql.so.5 => /opt/Qt5.14.2/5.14.2/gcc_64/lib/libQt5Sql.so.5 (0x00007f90cc573000)
 libQt5Core.so.5 => /opt/Qt5.14.2/5.14.2/gcc_64/lib/libQt5Core.so.5 (0x00007f90cbd98000)
 libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f90cbba1000)
 libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f90cba52000)
 libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f90cb85e000)
 libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f90cb858000)
 libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f90cb835000)
 libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f90cb81a000)
 libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f90cb7fe000)
 libicui18n.so.56 => /opt/Qt5.14.2/5.14.2/gcc_64/lib/libicui18n.so.56 (0x00007f90cb365000)
 libicuuc.so.56 => /opt/Qt5.14.2/5.14.2/gcc_64/lib/libicuuc.so.56 (0x00007f90cafab000)
 libicudata.so.56 => /opt/Qt5.14.2/5.14.2/gcc_64/lib/libicudata.so.56 (0x00007f90c95c8000)
 libgthread-2.0.so.0 => /lib/x86_64-linux-gnu/libgthread-2.0.so.0 (0x00007f90c95c3000)
 libglib-2.0.so.0 => /lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007f90c949a000)
 /lib64/ld-linux-x86-64.so.2 (0x00007f90cc855000)
 libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f90c9427000)

发现libodbc.so.2 => /usr/local/lib/libodbc.so.2 (0x00007f90cc7bc000)的路径没有指向unixODBC lib下的libodbc.so.2

解决方法

更改libodbc.so.2依赖的指向路径,刷新共享库缓存

cd  /etc/ld.so.conf.d

sudo gedit libc.conf

打开libc.conf文件后发现路径是/usr/local/lib

将其屏蔽增加新路径/usr/local/unixODBC/lib

刷新共享库缓存

sudo ldconfig  (一定要执行这一步)

删除原来的libqsqlodbc.so文件,重新生成新的.so文件,

再次测试连接成功

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值