QT5.6.1 编译 oracle11g 驱动



转自: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编译工具

QT5.6.1 编译 oracle11g 驱动

输入命令:

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目录下。

QT5.6.1 编译 oracle11g 驱动

然后在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就说明成功了

QT5.6.1 编译 oracle11g 驱动

QT5.6.1 编译 oracle11g 驱动