編譯QT的MySQL驅(qū)動(dòng)問題與其實(shí)際解決方案發(fā)布時(shí)間:2010.07.22 17:14 來源:51cto 作者:51cto此文章主要介紹的是編譯QT的MySQL驅(qū)動(dòng)問題與其實(shí)際解決方案, 假如你在實(shí)際操作中遇到相似的情況,但是你卻不知道對(duì)其如何正確的解決,那么以下的文章對(duì)你而言一定是良師益友。
做畢業(yè)設(shè)計(jì)要用到MySQL,界面方面想用下QT,順便學(xué)習(xí)一下QT的使用。上去就碰到問題,沒有MySQL的驅(qū)動(dòng)(其實(shí)在.\Qt\4.6.0\plugins\sqldrivers目錄下有,后來編譯完了才發(fā)現(xiàn),這里要崩潰一下~)。GOOGLE了一下,翻了翻網(wǎng)頁,就開始編譯MySQL驅(qū)動(dòng)了。
這里使用QT4.6.0版本和VS2008自帶的編譯器
使用的命令行參數(shù)是:
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
跟預(yù)料中的一樣,編譯出錯(cuò),錯(cuò)誤是"cannot find file: MySQL.pro",費(fèi)了半天勁終于發(fā)現(xiàn)我進(jìn)入的目錄是".\Qt\4.6.0\src\sql\drivers\MySQL"而不是傳說中的".\Qt\4.6.0\src\plugins\sqldrivers\MySQL"(本目錄才是正確路徑?。?。發(fā)生本錯(cuò)誤的同志們一定要檢查一下命令行的路徑進(jìn)的是否正確!
一個(gè)問題解決了,qmake成功完成,開始nmake。這里先是碰到了qsqlMySQLd_resource.rc中找不到"WinVer.h"的錯(cuò)誤。
找了找,發(fā)現(xiàn)WinVer.h頭文件居然在Windows SDK的文件夾下,于是在".\Microsoft Visual Studio 9.0\Common7\Tools"中找到了vsvars32.bat設(shè)置環(huán)境變量的批處理,把該批處理拖入命令行窗口運(yùn)行一遍(注意該批處理僅設(shè)置本次命令行窗口中的環(huán)境變量,并未修改注冊(cè)表,所以每次打開個(gè)新命令行窗口都要運(yùn)行一次批處理才可獲得其中包含的環(huán)境變量設(shè)置?。賜make,找不到WinVer.h的問題解決了。
再次nmake,這次問題就詭異了,居然找不到"MySQL.h"!但MySQL.h已經(jīng)在qmake的INCLUDEPATH參數(shù)中包含進(jìn)去了,怎么可能找不到?
郁悶,打開Makefile.Debug看看,發(fā)現(xiàn)里面INCLUDE進(jìn)去的"D:\Program Files\MySQL\MySQL Server 5.1\include"每個(gè)空格處都被認(rèn)為是一個(gè)路徑,好好的路徑給分的希碎,qmake的智商太低了!沒法,把MySQL Server 5.1文件夾下的include和lib文件夾直接拷貝到根目錄下,這樣INCLUDEPATH和LIBS路徑均無空格,再次qmake、nmake,OK了!
總結(jié):QT編譯MySQL驅(qū)動(dòng)注意要點(diǎn):
先檢查".\Qt\4.6.0\plugins\sqldrivers"中有無sql驅(qū)動(dòng),有的話就別費(fèi)這勁編譯了!
安裝MySQL時(shí)要勾住“C Include Files 和 Lib Files”選項(xiàng),這樣才能裝上MySQL的頭文件和鏈接庫。
安裝MySQL時(shí)路徑中不要有空格,不然編譯驅(qū)動(dòng)太費(fèi)勁(上面的找不到"MySQL.h"錯(cuò)誤)。
命令行進(jìn)行qmake和nmake前,一定要先轉(zhuǎn)入正確目錄(上面的"cannot find file: MySQL.pro"錯(cuò)誤)!
在nmake前最好運(yùn)行一遍vsvars32.bat批處理(上面的找不到"WinVer.h"錯(cuò)誤)。 |
|
|