QT5.6.1 编译 oracle11g 驱动

xiaoxiao2021-02-27  355



转自:http://blog.csdn.net/zhu_zhu_wonder/article/details/47301825

首先要说明非常重要的一点:QT的位数需与Oracle的位数一致,否则编译驱动的时候会一直报错!我用的QT版本是5.6.1,安装的oracle是64位的。

找到oracle里面两个重要文件夹的路径(E:\app\SMART是我的Oracle的安装路径,各人的情况不一)

E:\app\SMART\product\11.2.0\dbhome_1\OCI\include

E:\app\SMART\product\11.2.0\dbhome_1\OCI\lib\MSVC

找到待编译的工程(C:\Qt是我的QT的安装路径,各人的情况不一)

C:\Qt\Qt5.6.1\5.6\Src\qtbase\src\plugins\sqldrivers\oci

将待编译工程里面的oci.pro文件修改如下(即添加最后两行代码):

TARGET = qsqloci SOURCES = main.cpp include(../../../sql/drivers/oci/qsql_oci.pri) include(../qsqldriverbase.pri) INCLUDEPATH += E:\app\SMART\product\11.2.0\dbhome_1\OCI\include LIBPATH += E:\app\SMART\product\11.2.0\dbhome_1\OCI\lib\MSVC

打开vs2013编译工具

输入命令:

cd C:\Qt\Qt5.6.1\5.6\Src\qtbase\src\plugins\sqldrivers\oci

qmake -makefile oci.pro

nmake

编译成功之后,生成的dll文件存在于C:\Qt\Qt5.6.1\5.6\Src\qtbase\plugins\sqldrivers目录下,其复制到C:\Qt\Qt5.6.1\5.6\msvc2013_64\plugins\sqldrivers目录下。

然后在QT中运行以下代码,测试oracle驱动是否编译成功

sql_test.pro文件:

QT += sql SOURCES += \ main.cpp

mian.cpp文件:

#include <QCoreApplication> #include <QSqlDatabase> #include <QDebug> #include <QStringList> int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); QStringList drivers = QSqlDatabase::drivers(); foreach(QString driver,drivers){ qDebug()<<driver;} return a.exec(); }

运行结果有QOCI8和QOCI就说明成功了

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

最新回复(0)