編譯QT的MySql驅動問題及解決方案

2021-09-05 22:33:50 字數 1521 閱讀 8422

做畢業設計要用到mysql,介面方面想用下qt,順便學習一下qt的使用。上去就碰到問題,沒有mysql的驅動(其實在.\qt\4.6.0\plugins\sqldrivers目錄下有,後來編譯完了才發現,這裡要崩潰一下~)。google了一下,翻了翻網頁,就開始編譯驅動了。

這裡使用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驅動問題及解決方案

預設情況下,qt 並沒有自帶mysql的資料庫外掛程式,需要自己編譯 先安裝mysql server 執行setup.exe時選擇自定義安裝,安裝目錄設為 d mysqldev 不要留有空格,否則接下來qmake生成makeifle會出錯 開啟cmd 執行以下 cd qtdir src plugin...

Qt載入MySql5 6驅動問題

作業系統 windows xp qt版本 qt opensource 4.8.5 開發軟體 vs2010 mysql的版本 5.6 安裝路徑 c program files mysql qt的安裝路徑 c qt 4.8.5 步驟一 安裝好vs2010,qt4.8.5,以及mysql5.6 詳細過程不...

Ubuntu下Qt與Mysql驅動問題解決

早些時候在win7下也出現了qt和mysql連線的時候,出現找不到驅動的問題,後來在網上找到資料說是庫檔案依賴的問題,在win7下視覺化複製貼上很快就解決了問題。而今天,主要是為了解決困擾了好久的問題 linux下無法載入mysql驅動的問題,以供自己今後查閱。qt版本 qt5.3.2 mysql版...