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

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

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

這次我帶來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_1

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

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

,

網上有一片關於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的意思是指定依賴庫的路徑。

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

出現這種結果的原因很簡單,那是因爲你安裝的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下面即可。

 

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

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

2、添加: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

3、編譯:構建→重新構建項目“oci”

4、拷貝:將:\plugins下面的“ sqldrivers ”文件夾複製到Qt的..\Qt\Qt5.8.0\5.8\mingw53_32\plugins下面即可。

 注: 在這裏附上一篇我已經編譯好的驅動下載地址:Qt編譯好的oracle驅動下載 。<這裏將轉到我的另一個博客中,只因這邊審覈時間太長,爲了同步發出只好如此>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章