国产福利在线播放|久久精品福利网站免费|国产呻吟视频在线观看|日韩一区二区三区免费高清|久996视频精品免费观看|欧美日本在线一区二区三区|在线最新无码经典无码免費資訊|国产午夜亚洲精品国产成人最大

始創(chuàng)于2000年 股票代碼:831685
咨詢熱線:0371-60135900 注冊(cè)有禮 登錄
  • 掛牌上市企業(yè)
  • 60秒人工響應(yīng)
  • 99.99%連通率
  • 7*24h人工
  • 故障100倍補(bǔ)償
全部產(chǎn)品
您的位置: 網(wǎng)站首頁 > 幫助中心>文章內(nèi)容

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ì)的過程,供日后參考。-
 


1. 首先安裝QtSDK 1.2, 安裝在 ~/QtSDK目錄下,安裝的時(shí)候要選擇安裝4.8.0的源代碼,否則后面無法編譯plugin;

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  
./configure -opensource -prefix /Users/lutx/QtSDK/Desktop/Qt/4.8.0/gcc -plugin-sql-mysql -plugin-sql-oci  
 -plugin-sql-odbc -plugin-sql-sqllite -I/Users/lutx/bin/mysql/include -I/Users/lutx/bin/Oracle/sdk/include  
 -L/Users/lutx/bin/mysql/lib -L/Users/lutx/bin/Oracle
上面的命令中,prefix是定義編譯后的安裝目錄,默認(rèn)是安裝到/usr/local/Trolltech/Qt-4.8.0目錄下,我這里給定義安裝到 QtSDK的目錄下,這樣可以避免后面在QtCreator中配置版本,或者利用install_name_tools來修改動(dòng)態(tài)庫名稱等操作。經(jīng)過一段 時(shí)間(幾分鐘)等待后,生成了整個(gè)源目錄下的makefile文件。系統(tǒng)應(yīng)該顯示

Qt is now configured for building. Just run 'make'.  
Once everything is built, you must run 'make install'.  
Qt will be installed into /Users/[xxxx]/QtSDK/Desktop/Qt/4.8.0/gcc  
  
To reconfigure, run 'make confclean' and 'configure'. 
上面的[xxxx]應(yīng)該是你的系統(tǒng)登錄用戶名,下同。

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()’:  
fileapi/FileReaderLoader.cpp:307: error: ‘base64Encode’ was not declared in this scope  
make[3]: *** [.obj/debug-static/FileReaderLoader.o] Error 1  
make[2]: *** [debug-all] Error 2  
make[1]: *** [sub-WebCore-make_default-ordered] Error 2 
這里也不知道是么原因,沒搞明白。

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 ../..  
make install 
因?yàn)椴皇潜匦璧,最后沒有編譯examples和demos兩個(gè)目錄。

如此編譯已經(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]

  • 您可能在找
  • 億恩北京公司:
  • 經(jīng)營(yíng)性ICP/ISP證:京B2-20150015
  • 億恩鄭州公司:
  • 經(jīng)營(yíng)性ICP/ISP/IDC證:豫B1.B2-20060070
  • 億恩南昌公司:
  • 經(jīng)營(yíng)性ICP/ISP證:贛B2-20080012
  • 服務(wù)器/云主機(jī) 24小時(shí)售后服務(wù)電話:0371-60135900
  • 虛擬主機(jī)/智能建站 24小時(shí)售后服務(wù)電話:0371-60135900
  • 專注服務(wù)器托管17年
    掃掃關(guān)注-微信公眾號(hào)
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 億恩科技 版權(quán)所有  地址:鄭州市高新區(qū)翠竹街1號(hào)總部企業(yè)基地億恩大廈  法律顧問:河南亞太人律師事務(wù)所郝建鋒、杜慧月律師   京公網(wǎng)安備41019702002023號(hào)
      0
     
     
     
     

    0371-60135900
    7*24小時(shí)客服服務(wù)熱線