首先要说明非常重要的一点: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

bb942fb1c7a9588edf3dd3cecc3307bf.png

1296743452247138304.htm

方法二:

在QT creator打开待编译的工程oci.pro,然后点击左侧的“项目”,选择“运行”,“Executable”那一项选择mingw32-make.exe编译器,运行工程,查看编译输出的结果即可。

1296743452247138304.htm3113edfedf9378376195ae379595002c.png

编译成功之后,生成的文件在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

intmain(intargc,char*argv[])

{

QCoreApplicationa(argc,argv);

QStringListdrivers=QSqlDatabase::drivers();

foreach(QStringdriver,drivers){

qDebug()

}

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

1296743452247138304.htm

889041b8451948a9275e7fc49d028f49.png

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐