编译qt的oracle驱动QOCI

    xiaoxiao2021-12-14  24

    编译qt的oracle驱动QOCI

    最近做qt开发需要连接远程的oracle数据库,发现qt下连接oracle数据库需要自己编译qoci的驱动。经过多番折腾终于编译成功,期间遇到很多问题,所以记录了下来,希望对遇到同样问题人有所帮助。

    编译环境:

    qt 5.5.1+MSVC2010 32bitoracle10g客户端win7 64位系统

    使用qt命令行编译

    1、打开qt命令行界面 2、在命令行中依次输入一下命令:

    set INCLUDE=%INCLUDE%;D:\oracle\product\10.2.0\client_1\oci\include set LIB=%LIB%;D:\oracle\product\10.2.0\client_1\oci\lib\msvc cd C:\Qt\Qt5.5.1\5.5\Src\qtbase\src\plugins\sqldrivers\oci qmake -o Makefile nmake

    其中D:\oracle\product\10.2.0\client_1\oci为oracle客户端的安装 目录;C:\Qt\Qt5.5.1\5.5\Src\qtbase\src\plugins\sqldrivers\oci为qt的oci.pro文件所在目录。

    以上4条命令都正确执行后当执行nmake命令时报:”rc”不是内部命令或外部命令,由于工程进度原因在查找原因无果后,在网上看到别人直接用qt creater编译,亲测可用,于是记录这种方法

    qt create编译oracle驱动

    1、使用qt creater直接打开C:\Qt\Qt5.5.1\5.5\Src\qtbase\src\plugins\sqldrivers\oci\oci.pro文件,工具会自动创建工程。 2、右键工程点击“运行”按钮,工具会自动编译oracle驱动,我生成的文件在c盘根目录下的plugins文件夹下,而不是在debug文件夹下(让我好找)。 3、将其中的qsqloci.dll、qsqlocid.dll两个文件复制到C:\Qt\Qt5.5.1\5.5\msvc2010\plugins\sqldrivers文件夹下,成功了!

    遇到问题及解决方法

    1、LNK2019:无法解析的外部符号 由于我使用的是32位的qt然后链接的是64位的oracle11g客户端导致报这个错,所以重装了一个32位的oracle10g的客户端,问题解决。

    2、nmake不是内部命令或外部命令 在电脑的环境变量path中加入C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin

    3、

    QSqlDatabase: QOCI driver not loaded QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QOCI QOCI8 QODBC QODBC3 QPSQL QPSQL7

    调用oracle数据库的时候显示无法加载QOCI驱动,但是刚刚我已经编译好了 ,而且下面一行提示中也有QOCI QOCI8的驱动,说明oracle驱动正确加载了。发现是我在一台没有安装oracle客户端电脑上调试才报此错,于是安装oracle10g客户端问题解决。 4、在qt安装目录下无法找到oci.pro文件 由于我安装qt5.5.1时是默认安装如图: 没有勾选Source Components选项,导致未安装源码文件,也就是qt安装目录下没有src文件夹,所以编译oracle驱动时安装的qt最好将组件全勾选。

    转载请注明原文地址: https://ju.6miu.com/read-963741.html

    最新回复(0)