转自:http://blog.youkuaiyun.com/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就说明成功了