Windows下編譯Qt的Mysql驅動(詳細測試可用)

本文只適用於Windows平臺mingw編譯器

系統:Windows XP
Qt版本:4.8.0
Qt Creator版本:2.4.1 

安裝路徑:
Qt -> D:\Qt\4.8.0
Qt Creator -> D:\Qt\qtcreator-2.4.1
mingw -> D:\Qt\qtcreator-2.4.1\mingw

1.配置環境變量:

到“我的電腦->屬性->高級->環境變量->系統變量”中編輯Path,添加:
;D:\Qt\4.8.0\bin;D:\Qt\qtcreator-2.4.1\bin;D:\Qt\qtcreator-2.4.1\mingw\bin
確定;爲了讓環境變量生效,如果配置環境變量之前已經打開cmd,要重新打開一個新的cmd窗口。

2.下載mysql

官網www.mysql.com下載,非安裝包的文件名稱類似這種格式:mysql-5.5.29-win32.zip
我下載的安裝包:http://cdn.mysql.com/Downloads/MySQL-5.5/mysql-5.5.29-win32.zip
只需要mysql裏面的lib和include,所以這裏我提供一個精簡包,下載地址:mysql_lib_include.rar
解壓到D:\

3.下載mingw-utils-0.3.tar.gz,下載地址

解壓出來,將bin文件夾裏面的reimp.exe拷貝到D:\Qt\qtcreator-2.4.1\mingw\bin目錄,不拷貝也行,調用reimp手動添加絕對路徑。


4.編譯驅動

打開cmd,執行以下命令:

(1)轉換libmysql格式

d:
cd d:\mysql\lib
reimp -d libmysql.lib
dlltool -k -d libmysql.def -l libmysql.a

(2)編譯qt的mysql驅動

cd d:\qt\4.8.0\src\plugins\sqldrivers\mysql
qmake "CONFIG+=release" -o Makefile "INCLUDEPATH+=d:/mysql/include" "LIBS+=d:/mysql/lib/libmysql.a" mysql.pro
mingw32-make
qmake "CONFIG+=debug" -o Makefile "INCLUDEPATH+=d:/mysql/include" "LIBS+=d:/mysql/lib/libmysql.a" mysql.pro
mingw32-make

5.拷貝mysql驅動

編譯完成後,打開D:\Qt\4.8.0\src\plugins\sqldrivers\mysql目錄,可以看到release和debug目錄,分別從release和debug目錄中拷貝以下4個文件到D:\Qt\4.8.0\plugins\sqldrivers:
qsqlmysql4.dll
libqsqlmysql4.a
qsqlmysqld4.dll
libqsqlmysqld4.a


6.拷貝mysql動態庫(重要)

(1)本機運行

拷貝D:\mysql\lib\libmysql.dll文件到D:\Qt\4.8.0\bin

(2)沒有mysql的電腦

若要發佈應用程序,要跟着libmysql.dll一塊發佈,與應用程序同級目錄。

7.測試mysql可用性

加入已經存在mysql服務,那麼編寫以下代碼測試:

(1).測試是否有驅動

QStringList driverList = QSqlDatabase::drivers();
qDebug() << driverList;
//運行結果:("QSQLITE", "QMYSQL3", "QMYSQL", "QODBC3", "QODBC")?
如果存在QMYSQL和QMYSQL3就是正確的

(2).測試mysql是否可用

QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("192.168.1.23");
db.setDatabaseName("testsql");
db.setUserName("root");
db.setPassword("root");
bool ok = db.open();
qDebug() << ok;
//運行結果:true
若爲true,說明連接成功

8.提供編譯成功的mysql驅動

我的版本上面已經寫了:Windows, Qt4.8, mingw
下載地址:qt4.8_mingw_qsqlmysql4.rar 
發佈了77 篇原創文章 · 獲贊 705 · 訪問量 107萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章