加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Qt5.8以上版本编译Oracle数据库的OCI驱动教程

发布时间:2020-12-12 14:34:25 所属栏目:百科 来源:网络整理
导读:在前一篇的文章中我已经发过一个相似的文章,详情请点击:Qt5编译oracle驱动教程。 在那一篇文章中已经可以解决了Qt5的常用版本的Oracle数据库驱动的支持,但是在新的Qt开发工具中那种方法竟然失效了,具体出现在Qt5.7.1之后的版本。 这次我带来 Qt5.8.0 的

在前一篇的文章中我已经发过一个相似的文章,详情请点击:Qt5编译oracle驱动教程。

在那一篇文章中已经可以解决了Qt5的常用版本的Oracle数据库驱动的支持,但是在新的Qt开发工具中那种方法竟然失效了,具体出现在Qt5.7.1之后的版本。

这次我带来Qt5.8.0的编译教程,Qt5.9的版本同样适用。

Qt版本是Qt5.8.0,安装路径是默认的 C:QtQt5.8.0,Oracle客户端版本oracle 11g 安装路径是D:appXiaoproduct11.2.0client_1

打开C:QtQt5.8.05.8Srcqtbasesrcpluginssqldriversoci目录下面的oci.pro。

未进行修改的直接编译结果:Library 'oci' is not defined.

,

网上有一片关于qt5.8 + vs2015 编译 qoci 驱动 Project ERROR: Library 'oci' is not defined的教程,但是和我用的不一样,我用的是mingw版本。故此他的方法我用不了。如果你的是用vs编译的可以去他那边看看,成与不成我没试过。

使用vc编译的将源文件中的QMAKE_USE += oci改为QMAKE_LFLAGS +=oci.lib,使用gcc编译的改为QMAKE_LFLAGS +=oci.dll,因为我用的是mingw版本所以我的是QMAKE_LFLAGS +=oci.dll。注:QMAKE_LFLAGS的意思是指定依赖库的路径。

进行修改后的编译结果:oci.dll: No such file or directory,没有这个文件或者目录

出现这种结果的原因很简单,那是因为你安装的Oracle数据库没有将对应的bin目录的路径添加到PATH中

图上面的是我的bin路径。这时候你们会说我的里面也添加了,软件安装的时候就自己添加了等等……

这里声明一下为什么要添加PATH,因为QMAKE_LFLAGS +=oci.dll,他加载的“oci.dll”就在那个bin目录里面,现在你们都明白了吧!

而我们出现错误的原因就是这里,Qt他没有找到你的PATH,故此我们就用最简单粗暴的方法添加进去就可以。

QMAKE_LFLAGS +=D:appXiaoproduct11.2.0client_1BINoci.dll,注:加红的部分是你安装的Oracle数据库的bin目录位置。

进行到了这里,好多人还是没办法编译成功,嘿嘿……下面就是我要提醒你们的,如果你们看过上一篇类似文章的话,就不该忘记添加

INCLUDEPATH += D:appXiaoproduct11.2.0client_1ociinclude

LIBPATH +=D:appXiaoproduct11.2.0client_1ocilibmsvc

之后再重新编译,就会发现编译通过了,这时候我们在Qt安装的根目录下面去找 “:plugins”会发现里面有一个“ sqldrivers”文件夹,将其复制到Qt的..QtQt5.8.05.8mingw53_32plugins下面即可。

好了,到这就结束了,来总结一下就是需要:

1、修改:将原有的QMAKE_USE += oci改为QMAKE_LFLAGS +=D:appXiaoproduct11.2.0client_1BINoci.dll。

2、添加:INCLUDEPATH += D:appXiaoproduct11.2.0client_1ociinclude

     LIBPATH +=D:appXiaoproduct11.2.0client_1ocilibmsvc

3、编译:构建→重新构建项目“oci”

4、拷贝:将:plugins下面的“sqldrivers”文件夹复制到Qt的..QtQt5.8.05.8mingw53_32plugins下面即可。

注: 在这里附上一篇我已经编译好的驱动下载地址:Qt编译好的oracle驱动下载

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读