Mac系統(tǒng)下編譯Oracle的SQL Drivers插件qsqloci |
發(fā)布時(shí)間: 2012/9/3 17:03:06 |
今天編譯在Mac下編譯了Oracle的SQL驅(qū)動(dòng)插件,這里記錄編譯過程供參考。 先介紹一下編譯環(huán)境:Mac OS X 10.7.3, 安裝Qt SDK 1.2 for Mac,XCode 4.2.1。 1. 首先是到Oracle的網(wǎng)站上下載相關(guān)的庫和開發(fā)包,按照Qt文檔中的說明(How to Build the OCI Plugin on Unix and Mac OS X),需要下載"Instant Client Package - Basic"和"Instant Client Package - SDK"兩個(gè)包,可以從這里- 2. 把下載的zip文件解壓到同一個(gè)目錄下,如Oracle10gClient; 3. 編譯。在qt的文檔中有兩種方法,一個(gè)是利用configure生成makefile在執(zhí)行make,另一種是利用qmake生成makefile再生成。我這里用第一種方法沒有成功(原因不詳),這里說的是第二種方法: 1)進(jìn)入Qt源碼目錄,~/QtSDK/QtSources/4.8.0/src/plugins/sqldrivers/oci 2) 執(zhí)行qmake命令, 按照文檔中的說明,執(zhí)行 qmake "INCLUDEPATH+=[your_Oracle_dir]/instantclient_10_2/sdk/include" "LIBS+=-L[your_oracle_dir]/instantclient_10_2 -Wl,-rpath,[your_oracle_dir]/instantclient_10_2" -lclntsh -lnnz10" oci.pro 在執(zhí)行時(shí)make發(fā)現(xiàn)無法找到<QtSql/private/qsqlcachedresult_p.h>這個(gè)文件,www.linuxidc.com而實(shí)際這個(gè)文件在目錄中是有的,原因是默認(rèn)執(zhí)行qmake時(shí)只把二進(jìn)制的include目錄QtSDK/Desktop/Qt/4.8.0/gcc/include這個(gè)目錄放在INCLUDEPATH中,而這個(gè)文件是在源代碼目錄下,所以會出現(xiàn)無法找到頭文件的問題。解決辦法是把源代碼的include目錄在qmake時(shí)直接添加進(jìn)去,也就是執(zhí)行如下的qmake命令: qmake "INCLUDEPATH+=[your_Oracle_dir]/instantclient_10_2/sdk/include ~/QtSDK/QtSources/4.8.0/include" "LIBS+=-L[your_oracle_dir]/instantclient_10_2 -Wl,-rpath,[your_oracle_dir]/instantclient_10_2" -lclntsh -lnnz10" oci.pro ln -s libclntsh.dylib.10.1 libclntsh.dylib 然后再回頭去執(zhí)行make命令,就可以創(chuàng)建成功了。創(chuàng)建后的文件在~/QtSDK/QtSources/4.8.0/src/plugins/sqldrivers/oci目錄下,把它們復(fù)制到Qt的sqldrivers目錄下就可以了。 以上就是整個(gè)生成驅(qū)動(dòng)插件的過程。 本文出自:億恩科技【www.riomediacenter.com】 服務(wù)器租用/服務(wù)器托管中國五強(qiáng)!虛擬主機(jī)域名注冊頂級提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |