Mac系統(tǒng)下Qt 4.8編譯連接數(shù)據(jù)庫(Oracle,MySql) |
發(fā)布時(shí)間: 2012/9/3 17:03:31 |
在Mac下成功編譯了MySql和Oracle的數(shù)據(jù)庫插件驅(qū)動(dòng),但遺憾的是在程序中無論如何也加載不了這兩個(gè)驅(qū)動(dòng),也無法連接數(shù)據(jù)庫。在環(huán)境變量中設(shè)置QT_DEBUG_PLUGINS=1, 再啟動(dòng)程序后Qt會(huì)報(bào)告一些加載插件的調(diào)試信息,從中可以看出是插件不兼容引起的,也就是文檔中所說的Build Key的問題,在文檔中有提到可能需要清除插件緩存(Plugin cache),應(yīng)該是在一個(gè)QSettings定義的文件中,但我沒找到。無奈下將QtSDK刪除重新安裝一遍,又從頭開始,最后終于成功。下面記錄詳細(xì)的過程,供日后參考。-
2. 下載MySql和Oracle的數(shù)據(jù)庫連接的動(dòng)態(tài)庫;可從官網(wǎng)下載,注意選擇與你的系統(tǒng)合適的版本,我這里是Max OSX 10.7.3 64bit;MySql下載的是mysql-connector-c-6.0.2-osx10.5-x86-64bit.tar.gz, oracle下需要的是instantclient basic包和instantclient SDK包。 3. 將下載的數(shù)據(jù)庫文檔解壓縮到本地目錄下,記錄下文件目錄;MySql解壓在~/bin/mysql目錄下,下面會(huì)有include和lib子目錄;Oracle的兩個(gè)包解壓到~/bin/oracle目錄下,目錄下有庫文件和sdk目錄; 4.準(zhǔn)備工作完了后,開始編譯生成Qt庫;首先執(zhí)行命令(后面3行是一個(gè)命令,因太長(zhǎng)了分行顯示) cd ~/QtSDK/QtSources/4.8.0 Qt is now configured for building. Just run 'make'. 5.下面開始編譯過程,應(yīng)該很簡(jiǎn)單,直接在剛才的目錄下繼續(xù)執(zhí)行make命令即可,www.linuxidc.com 但是我這里在編譯到QtWebkit這個(gè)庫的時(shí)候會(huì)有錯(cuò)誤,因此后面將跳過這個(gè)庫繼續(xù)編譯后面的庫。出現(xiàn)的錯(cuò)誤是: fileapi/FileReaderLoader.cpp: In member function ‘void WebCore::FileReaderLoader::convertToDataURL()’: 5.通過Makefile文件知道,在Webkit后面還有scripttools,plugins(這個(gè)是主要目的), 后面用命令逐個(gè)編譯每個(gè)庫。 cd src/scripttools;make;cd ../plugins;make;cd ../imports;make;cd ../tools;make;cd ../translations;make;cd ../.. 如此編譯已經(jīng)成功,另外在程序運(yùn)行時(shí)需要將mysql的lib目錄和Oracle的lib目錄加到環(huán)境變量DYLD_LIBRARY_PATH中,否則還是無法加載數(shù)據(jù)庫插件驅(qū)動(dòng)。
本文出自:億恩科技【www.riomediacenter.com】 服務(wù)器租用/服務(wù)器托管中國(guó)五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |