行业网站开发费用,网站建设大熊猫点搜,学ui三个月是骗学费吗,软件设计师中级含金量1.需求
最近linux下的Qt项目中要连接oracle数据库#xff0c;用户需要我们访问他们的oracle数据库#xff0c;查询数据
2.遇到的问题
qt连接oracle数据库需要oracle的驱动库libqsqloci.so插件#xff0c;需要编译下#xff0c;之前没有编译过#xff0c;看了网上的…1.需求
最近linux下的Qt项目中要连接oracle数据库用户需要我们访问他们的oracle数据库查询数据
2.遇到的问题
qt连接oracle数据库需要oracle的驱动库libqsqloci.so插件需要编译下之前没有编译过看了网上的很多都行不通只好自己问同事查文档完成
3.解决方案
1.首先需要oracle数据库的sdk包和baisc包
sdk包提供编译所需的头文件压缩包或者安装包里提供编译所需的依赖库文件
官网下载地址在这里Instant Client for Linux x86-64 (64-bit) | Oracle 中国
basic压缩包下面这个不用安装的解压就行 sdk包下面这个拉下去就有了 下载完成后解压我新建了两个文件夹后把解压的文件放进去因为名字太长了 然后进入basic包里面为这两个库生成软连接qt编译需要用到 生成软连接命令
ln -s libclntsh.so.11.1 libclntsh.so
ln -s libocci.so.11.1 libocci.so 然后我们进入qt的数据库驱动目录下根据自己的安装位置找终端切换到sqldrivers目录 输入qmake执行让其生成qtsqldrivers-config.pri 然后修改qsqldriverbase.pri文件改成如下注释掉原来的保存退出
#include($$shadowed($$PWD)/qtsqldrivers-config.pri)
include($$PWD/qtsqldrivers-config.pri) 然后进入oci目录打开oci.pro文件修改如下内容
注释掉#QMAKE_USE oci在加入如下内容如下所示
QMAKE_LFLAGS /home/yicaobao/sortware/oracle/basic-linux-x64/libocci.soLIBS -L/home/yicaobao/sortware/oracle/basic-linux-x64 -locci -lclntshINCLUDEPATH /home/yicaobao/sortware/oracle/sdk-linux-x64/include
DEPENDPATH /home/yicaobao/sortware/oracle/sdk-linux-x64/include 根据自己的实际路径来改注意路径不能有中文
改完后在终端进入oci目录执行如下命令make完成后就看到在相应的目录下生成了libqsqloci.solibqsqloci.so.debug库 然后我们把第一个库文件libqsqloci.so拷贝到程序所需的驱动目录下 除了这个编译的驱动还需要几个库依赖从basic目录下把这几个库拷贝到你的库目录中这个目录可以配置在程序的pro目录下配置即可否则程序运行时会找不到连接时报错 最后再把basic目录下的libnnz11.so目录拷贝到程序所在目录中不然连接oracle数据库会提示找不到这个依赖 最后就可以连接oracle数据库了
如下还是打开数据库失败在终端运行程序前输入可查看插件加载运行的详细信息export QT_DEBUG_PLUGINS1 如果加载库失败会提示相关的原因如下提示了无法加载库/home/yicaobao/svn/projects/VWEL-SCB/branches/test/SC3CForJL/bin/debug/sqldrivers/libqsqloci.so(libnnz11.so: 无法打开共享对象文件: 没有那个文件或目录) 然后完成记录下来给后人分享吧有什么疑问可以评论区讨论一下