Qt5.8以上版本編譯Oracle數據庫的OCI驅動教程

在前一篇的文章中我已經發過一個類似的文章,詳情請點擊:Qt5編譯oracle驅動教程html

在那一篇文章中已經能夠解決了Qt5的經常使用版本的Oracle數據庫驅動的支持,可是在新的Qt開發工具中那種方法居然失效了,具體出如今Qt5.7.1以後的版本。sql

此次我帶來Qt5.8.0的編譯教程,Qt5.9的版本一樣適用。數據庫

Qt版本是Qt5.8.0,安裝路徑是默認的 C:\Qt\Qt5.8.0,Oracle客戶端版本oracle 11g 安裝路徑是 D:\app\Xiao\product\11.2.0\client_1oracle

打開C:\Qt\Qt5.8.0\5.8\Src\qtbase\src\plugins\sqldrivers\oci目錄下面的oci.pro。app

未進行修改的直接編譯結果: Library 'oci' is not defined.工具

,post

網上有一片關於qt5.8 + vs2015 編譯 qoci 驅動 Project ERROR: Library 'oci' is not defined的教程,可是和我用的不同,我用的是mingw版本。故此他的方法我用不了。若是你的是用vs編譯的能夠去他那邊看看,成與不成我沒試過。開發工具

使用vc編譯的將源文件中的QMAKE_USE += oci改成QMAKE_LFLAGS +=oci.lib,使用gcc編譯的改成QMAKE_LFLAGS +=oci.dll,由於我用的是mingw版本因此個人是QMAKE_LFLAGS +=oci.dll。注:QMAKE_LFLAGS的意思是指定依賴庫的路徑。url

進行修改後的編譯結果:oci.dll: No such file or directory,沒有這個文件或者目錄spa

出現這種結果的緣由很簡單,那是由於你安裝的Oracle數據庫沒有將對應的bin目錄的路徑添加到PATH中

圖上面的是個人bin路徑。這時候大家會說個人裏面也添加了,軟件安裝的時候就本身添加了等等……

這裏聲明一下爲何要添加PATH,由於QMAKE_LFLAGS +=oci.dll,他加載的「oci.dll」就在那個bin目錄裏面,如今大家都明白了吧!

 

而咱們出現錯誤的緣由就是這裏,Qt他沒有找到你的PATH,故此咱們就用最簡單粗暴的方法添加進去就能夠。

QMAKE_LFLAGS +=D:\app\Xiao\product\11.2.0\client_1\BIN\oci.dll,注:加紅的部分是你安裝的Oracle數據庫的bin目錄位置。

 

進行到了這裏,好多人仍是沒辦法編譯成功,嘿嘿……下面就是我要提醒大家的,若是大家看過上一篇相似文章的話,就不應忘記添加

INCLUDEPATH += D:\app\Xiao\product\11.2.0\client_1\oci\include

LIBPATH += D:\app\Xiao\product\11.2.0\client_1\oci\lib\msvc

 

以後再從新編譯,就會發現編譯經過了,這時候咱們在Qt安裝的根目錄下面去找 「:\plugins」會發現裏面有一個「 sqldrivers 」文件夾,將其複製到Qt的..\Qt\Qt5.8.0\5.8\mingw53_32\plugins下面便可。

 

好了,到這就結束了,來總結一下就是須要:

一、修改:將原有的QMAKE_USE += oci改成QMAKE_LFLAGS +=D:\app\Xiao\product\11.2.0\client_1\BIN\oci.dll。

二、添加:INCLUDEPATH += D:\app\Xiao\product\11.2.0\client_1\oci\include 

      LIBPATH += D:\app\Xiao\product\11.2.0\client_1\oci\lib\msvc

三、編譯:構建→從新構建項目「oci」

四、拷貝:將:\plugins下面的「 sqldrivers 」文件夾複製到Qt的..\Qt\Qt5.8.0\5.8\mingw53_32\plugins下面便可。

注: 在這裏附上一篇我已經編譯好的驅動下載地址:Qt編譯好的oracle驅動下載

相關文章
相關標籤/搜索