首先要说明非常重要的一点:QT的位数需与oracle的位数一致,否则编译驱动的时候会一直报错!我用的QT版本是4.8.6,安装的oracle是32位的。
找到oracle里面两个重要文件夹的路径(F:\oracle是我的Oracle的安装路径,各人的情况不一)
F:\oracle\product\11.2.0\dbhome_1\OCI\include
F:\oracle\product\11.2.0\dbhome_1\OCI\lib\MSVC
找到待编译的工程(D:\Qt是我的QT的安装路径,各人的情况不一)
D:\Qt\4.8.6\src\plugins\sqldrivers\oci
将待编译工程里面的oci.pro文件修改如下(即添加最后两行代码):
TARGET = qsqloci
SOURCES = main.cpp
include(../../../sql/drivers/oci/qsql_oci.pri)
include(../qsqldriverbase.pri)
INCLUDEPATH += F:\oracle\product\11.2.0\dbhome_1\OCI\include
LIBPATH += F:\oracle\product\11.2.0\dbhome_1\OCI\lib\MSVC
看过网上很多编译的教程,下面总结两种编译的方法。
方法一:
打开Qt 4.8.6 Command Prompt,输入以下命令即可进行编译。
set INCLUDE=%INCLUDE%;F:\oracle\product\11.2.0\dbhome_1\OCI\include
set LIB=%LIB%;F:\oracle\product\11.2.0\dbhome_1\OCI\lib\MSVC
cd D:\Qt\4.8.6\src\plugins\sqldrivers\oci
qmake -makefile oci.pro
mingw32-make
方法二:
在QT creator打开待编译的工程oci.pro,然后点击左侧的“项目”,选择“运行”,“Executable”那一项选择mingw32-make.exe编译器,运行工程,查看编译输出的结果即可。
编译成功之后,生成的文件在oci工程的debug文件夹里面,将其复制到D:\Qt\4.8.6\plugins\sqldrivers目录下。
然后在QT中运行以下代码,测试oracle驱动是否编译成功
sql_test.pro文件:
QT += sql
SOURCES += \
main.cpp
mian.cpp文件:
#include
#include
#include
#include
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QStringList drivers = QSqlDatabase::drivers();
foreach(QString driver,drivers){
qDebug()< return a.exec();}
运行结果有QOCI8和QOCI就说明成功了