QT5.9 编译 OCI (安装的时候没有选择sources)

     由于前几天为了安装Qt快一点,没有选择sources ,所以导致了要连接oracle 没有驱动,该这么办呢。

1、http://download.qt.io/archive/qt/5.9/5.9.1/single/  下载  qt-everywhere-opensource-src-5.9.1.zip , 跟我一样没有选择sources的人可以从Qt的官网下载源文件,解压并拷贝到D:\Qt\Qt5.9.1\5.9.1,为了和安装的一样,更名为Src文件夹。

2、打开Qt5.9.1  for desktop (mingw 5.3.0 32 bit) 直接到D:\Qt\Qt5.9.1\5.9.1\Src\qtbase\src\plugins\sqldrivers\oci 路径下,这个时候如果和前面的一样直接qmake,会报错,找不到 qsqldriverbase.pri ,这个时候你需要cd..,返回到上级,qmake一下,这样就可以了。

3、回来qmake还是不行,会报错 “Library 'oci' is not defined” 还会报 “qsql_oci.cpp:65:17: fatal error: oci.h: No such file or directory” 这个时候就是pro文件的问题了,咱们用的是mingw的版本,所以解决办法是 原来默认的pro代码是

TARGET = qsqloci

HEADERS += $$PWD/qsql_oci_p.h
SOURCES += $$PWD/qsql_oci.cpp $$PWD/main.cpp

QMAKE_USE += oci

darwin:QMAKE_LFLAGS += -Wl,-flat_namespace,-U,_environ

OTHER_FILES += oci.json

PLUGIN_CLASS_NAME = QOCIDriverPlugin
include(../qsqldriverbase.pri)
改成
TARGET = qsqloci

HEADERS += $$PWD/qsql_oci_p.h
SOURCES += $$PWD/qsql_oci.cpp $$PWD/main.cpp

#QMAKE_USE += oci
QMAKE_LFLAGS +=D:\oracle\product\10.2.0\db_1\BIN\oci.dll

darwin:QMAKE_LFLAGS += -Wl,-flat_namespace,-U,_environ

OTHER_FILES += oci.json

INCLUDEPATH += D:\oracle\product\10.2.0\db_1\OCI\include
LIBPATH += D:\oracle\product\10.2.0\db_1\OCI\lib\MSVC

PLUGIN_CLASS_NAME = QOCIDriverPlugin

include(../qsqldriverbase.pri)

改变qmake的dll路径,和添加oracle里面的编译需要文件夹,这个时候在qmake  , mingw32-make ,叮叮叮,成功编译。

4、拷贝:将:D:\Qt\Qt5.9.1\5.9.1\Src\qtbase\src\plugins\sqldrivers\plugins\sqldrivers文件夹里面生成的qsqloci.dll,qsqlocid.dll 复制到D:\Qt\Qt5.9.1\5.9.1\mingw53_32\plugins\sqldrivers下面即可。具体测试代码,看我前面的博客。

你可能感兴趣的:(Qt5学习)