當前位置:
首頁 > 知識 > Qt5.8以上版本編譯Oracle資料庫的OCI驅動教程

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

這次我帶來Qt5.8.0的編譯教程,Qt5.9的版本同樣適用。

Qt版本是Qt5.8.0,安裝路徑是默認的C:QtQt5.8.0,Oracle客戶端版本oracle 11g安裝路徑是 D:appXiaoproduct11.2.0client_1

打開C:QtQt5.8.05.8Srcqtbasesrcpluginssqldriversoci目錄下面的oci.pro。

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

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

,

網上有一片關於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,沒有這個文件或者目錄

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

出現這種結果的原因很簡單,那是因為你安裝的Oracle資料庫沒有將對應的bin目錄的路徑添加到PATH中

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

圖上面的是我的bin路徑。這時候你們會說我的裡面也添加了,軟體安裝的時候就自己添加了等等……

這裡聲明一下為什麼要添加PATH,因為QMAKE_LFLAGS +=oci.dll,他載入的「oci.dll」就在那個bin目錄裡面,現在你們都明白了吧!

而我們出現錯誤的原因就是這裡,Qt他沒有找到你的PATH,故此我們就用最簡單粗暴的方法添加進去就可以。

QMAKE_LFLAGS +=D:appXiaoproduct11.2.0client_1BINoci.dll,註:加紅的部分是你安裝的Oracle資料庫的bin目錄位置。

進行到了這裡,好多人還是沒辦法編譯成功,嘿嘿……下面就是我要提醒你們的,不要忘記添加

INCLUDEPATH += D:appXiaoproduct11.2.0client_1ociinclude

LIBPATH += D:appXiaoproduct11.2.0client_1ocilibmsvc

之後再重新編譯,就會發現編譯通過了,這時候我們在Qt安裝的根目錄下面去找 「:plugins」會發現裡面有一個「 sqldrivers 」文件夾,將其複製到Qt的..QtQt5.8.05.8mingw53_32plugins下面即可。

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

1、修改:將原有的QMAKE_USE += oci改為QMAKE_LFLAGS +=D:appXiaoproduct11.2.0client_1BINoci.dll。

2、添加:INCLUDEPATH += D:appXiaoproduct11.2.0client_1ociinclude

LIBPATH += D:appXiaoproduct11.2.0client_1ocilibmsvc

3、編譯:構建→重新構建項目「oci」

4、拷貝:將:plugins下面的「 sqldrivers 」文件夾複製到Qt的..QtQt5.8.05.8mingw53_32plugins下面即可。

文章摘自博客園


更多精彩推薦

IT教育專業培訓:http://www.ujiuye.com/

IT職業在線教育:http://xue.ujiuye.com/

零基礎學習web前端:http://www.ujiuye.com/zt/webqianduan/?wt.bd=lsh11tt

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 IT優就業 的精彩文章:

Node.js簡介
mybatis 詳解——一級緩存、二級緩存
ETL作業調度工具TASKCTL的兩個重大突破

TAG:IT優就業 |

您可能感興趣

2019年NoSQL 資料庫 TOP 15:MongoDB、微軟、Couchbase、AWS、谷歌、Redis Labs
使用Django連接Oracle 11g資料庫
雲資料庫TencentDBforPostgreSQL
2018 年 StackOverflow 資料庫調查:PgSQL 排第三
雲資料庫TencentDBforMySQL
雲資料庫TencentDforSQLServer
Spring SpringMVC配置Druid數據源(資料庫連接池)
UiPath連接Oracle資料庫
SpringBoot使用H2內嵌資料庫
華為全球發布AI-Native資料庫GaussDB
SQL_Server2000示例資料庫NorthWind的分析(轉)
關係型資料庫版本控制框架——Rumba RdbVersion
雲資料庫TencentDBforRedis
谷歌的Firebase爆大禍,泄漏了113GB的iOS/Android用戶資料!
雲資料庫TencentDBforMariaDB
雲資料庫TencentDBforCTSDB
Oracle實例和Oracle資料庫
反擊低端市場:AMD Athlon 200GE現身SiSoftware資料庫
Zero Day Initiative披露了Windows JET資料庫0Day漏洞
雲資料庫TencentDBforMongoDB