此文章主要介紹的是編譯QT的MySQL驅動問題與其實際解決方案, 假如你在實際操作中遇到相似的情況,但是你卻不知道對其如何正確的解決,那麼以下的文章對你而言一定是良師益友。
做畢業設計要用到MySQL,界面方面想用下QT,順便學習一下QT的使用。上去就碰到問題,沒有MySQL的驅動其實在.\Qt\4.6.0\plugins\sqldrivers目錄下有,後來編譯完了才發現,這裡要崩潰一下~)。GOOGLE了一下,翻了翻網頁,就開始編譯MySQL驅動了。
這裡使用QT4.6.0版本和VS2008自帶的編譯器
使用的命令行參數是:
qmake –o Makefile INCLUDEPATH+="D:\Program Files\MySQL\MySQL Server 5.1\include" LIBS+="D:\Program Files\MySQL\MySQL Server 5.1\lib\opt\libMySQL.lib" MySQL.pro
nmake
跟預料中的一樣,編譯出錯,錯誤是"cannot find file: MySQL.pro",費了半天勁終於發現我進入的目錄是".\Qt\4.6.0\src\sql\drivers\MySQL"而不是傳說中的".\Qt\4.6.0\src\plugins\sqldrivers\MySQL"本目錄才是正確路徑!)。發生本錯誤的同志們一定要檢查一下命令行的路徑進的是否正確!
一個問題解決了,qmake成功完成,開始nmake。這裡先是碰到了qsqlMySQLd_resource.rc中找不到"WinVer.h"的錯誤。
找了找,發現WinVer.h頭文件居然在Windows SDK的文件夾下,於是在".\Microsoft Visual Studio 9.0\Common7\Tools"中找到了vsvars32.bat設置環境變量的批處理,把該批處理拖入命令行窗口運行一遍注意該批處理僅設置本次命令行窗口中的環境變量,並未修改注冊表,所以每次打開個新命令行窗口都要運行一次批處理才可獲得其中包含的環境變量設置!),再nmake,找不到WinVer.h的問題解決了。
再次nmake,這次問題就詭異了,居然找不到"MySQL.h"!但MySQL.h已經在qmake的INCLUDEPATH參數中包含進去了,怎麼可能找不到?
郁悶,打開Makefile.Debug看看,發現裡面INCLUDE進去的"D:\Program Files\MySQL\MySQL Server 5.1\include"每個空格處都被認為是一個路徑,好好的路徑給分的希碎,qmake的智商太低了!沒法,把MySQL Server 5.1文件夾下的include和lib文件夾直接拷貝到根目錄下,這樣INCLUDEPATH和LIBS路徑均無空格,再次qmake、nmake,OK了!
總結:QT編譯MySQL驅動注意要點:
先檢查".\Qt\4.6.0\plugins\sqldrivers"中有無sql驅動,有的話就別費這勁編譯了!
安裝MySQL時要勾住“C Include Files 和 Lib Files”選項,這樣才能裝上MySQL的頭文件和鏈接庫。
安裝MySQL時路徑中不要有空格,不然編譯驅動太費勁上面的找不到"MySQL.h"錯誤)。
命令行進行qmake和nmake前,一定要先轉入正確目錄上面的"cannot find file: MySQL.pro"錯誤)!
在nmake前最好運行一遍vsvars32.bat批處理上面的找不到"WinVer.h"錯誤)。
以上的相關內容就是對編譯QT的MySQL驅動問題及解決方案的介紹,望你能有所收獲。