編譯mysql動態鏈接庫解決QMYSQL driver not loaded問題

qt初次開發mysql時,常會碰到QSqlDatabase: QMYSQL driver not loaded問題
原因是qt缺失qsqlmysql.dll 與qsqlmysqld.dll,解決方案是
通過源碼編譯出qsqlmysql.dll 與qsqlmysqld.dll

以下爲64win7下用64位qt編譯64位mysql動態鏈接庫

一、安裝mysql
mysql源碼位於
你的qt安裝目錄\你的qt版本號\Src\qtbase\src\plugins\sqldrivers\mysql
一、安裝mysql
1、官網下載:https://dev.mysql.com/downloads/file/?id=494993
mysql-8.0.20-winx64.zip
2、解壓壓縮包至C:/mysql
3、設置MYSQL_HOME環境變量
3.1MYSQL_HOME
計算機-》右鍵-》高級系統設置-》環境變量-》系統變量-》新建
在對話框中
變量名:MYSQL_HOME
變量值:C:\mysql\mysql-8.0.20-winx64
確定
3,2PATH
系統變量->Path->編輯
在變量名最前端:輸入%MYSQL_HOME%%;
重啓主機

二、編譯qsqlmysql.dll 與qsqlmysqld.dll
1、找到mysql源碼並用qt打開他
qt安裝目錄\當前qt版本號\Src\qtbase\src\plugins\sqldrivers\mysql
2、編輯mysql.pro文件
於文件下方添加如下三行
LIBS += $$(MYSQL_HOME)/lib/libmysql.lib
INCLUDEPATH += $$(MYSQL_HOME)/include
DEPENDPATH += $$(MYSQL_HOME)/include
3、項目->重構->Ctrl+b(編譯)
4、找到編譯後的文件
qt安裝目錄\當前qt版本號\Src\qtbase\src\plugins\sqldrivers\plugins\sqldrivers
找到剛剛編譯出的4個文件
libqsqlmysql.a
libqsqlmysqld.a
qsqlmysql.dll
qsqlmysqld.dll

5、將qsqlmysql.dll與qsqlmysqld.dll複製添加到qt中
qt安裝目錄\當前qt版本號\mingw73_64\plugins\sqldrivers
6、重啓qt

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章