转自: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.cppmian.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就说明成功了