Mac系統下Qt 4.8編譯連接數據庫(Oracle,MySql) |
發布時間: 2012/9/3 17:03:31 |
在Mac下成功編譯了MySql和Oracle的數據庫插件驅動,但遺憾的是在程序中無論如何也加載不了這兩個驅動,也無法連接數據庫。在環境變量中設置QT_DEBUG_PLUGINS=1, 再啟動程序后Qt會報告一些加載插件的調試信息,從中可以看出是插件不兼容引起的,也就是文檔中所說的Build Key的問題,在文檔中有提到可能需要清除插件緩存(Plugin cache),應該是在一個QSettings定義的文件中,但我沒找到。無奈下將QtSDK刪除重新安裝一遍,又從頭開始,最后終于成功。下面記錄詳細的過程,供日后參考。-
2. 下載MySql和Oracle的數據庫連接的動態庫;可從官網下載,注意選擇與你的系統合適的版本,我這里是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. 將下載的數據庫文檔解壓縮到本地目錄下,記錄下文件目錄;MySql解壓在~/bin/mysql目錄下,下面會有include和lib子目錄;Oracle的兩個包解壓到~/bin/oracle目錄下,目錄下有庫文件和sdk目錄; 4.準備工作完了后,開始編譯生成Qt庫;首先執行命令(后面3行是一個命令,因太長了分行顯示) cd ~/QtSDK/QtSources/4.8.0 Qt is now configured for building. Just run 'make'. 5.下面開始編譯過程,應該很簡單,直接在剛才的目錄下繼續執行make命令即可,www.linuxidc.com 但是我這里在編譯到QtWebkit這個庫的時候會有錯誤,因此后面將跳過這個庫繼續編譯后面的庫。出現的錯誤是: fileapi/FileReaderLoader.cpp: In member function ‘void WebCore::FileReaderLoader::convertToDataURL()’: 5.通過Makefile文件知道,在Webkit后面還有scripttools,plugins(這個是主要目的), 后面用命令逐個編譯每個庫。 cd src/scripttools;make;cd ../plugins;make;cd ../imports;make;cd ../tools;make;cd ../translations;make;cd ../.. 如此編譯已經成功,另外在程序運行時需要將mysql的lib目錄和Oracle的lib目錄加到環境變量DYLD_LIBRARY_PATH中,否則還是無法加載數據庫插件驅動。
本文出自:億恩科技【www.laynepeng.cn】 |