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 + 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: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
※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