1. 程式人生 > >Qt5.8以上版本編譯Oracle數據庫的OCI驅動教程

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

+= pro 位置 htm 失效 director ref 們的 www

在前一篇的文章中我已經發過一個相似的文章,詳情請點擊: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下面即可。

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