ubuntu18.04編譯qt5.10 mysql數據庫驅動,解決QSqlDatabase: QMYSQL driver not loaded問題

1 問題描述

在ubuntu18.04系統中使用qt5.10來操作mysql數據庫比較麻煩的事情就是經常在裝完qt工具,寫完代碼一編譯出現無法操作mysql數據庫問題

QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QPSQL QPSQL7
Unable to open database

要解決這個問題得通過qt5.10源碼重新編譯mysql驅動

2 解決問題

2.1 下載qt5.10源碼

qt5.10源碼下載地址
在這裏插入圖片描述
解壓得到源碼如下:
在這裏插入圖片描述

2.2 編譯mysql驅動

2.2.1 安裝mysql相關庫

進行這個步驟前提是已經安裝好了mysql數據庫,然後執行下面的命令安裝mysql相關庫

sudo apt-get install libmysqlclient-dev

2.2.2 修改配置文件

找到qsqldriverbase.pri文件,其在源碼的路徑如下(路徑要根據實際的路徑做修改)

在這裏插入圖片描述
將其修改成下面的樣子

QT  = core core-private sql-private
# For QMAKE_USE in the parent projects.
#include($$shadowed($$PWD)/qtsqldrivers-config.pri)
include(./configure.pri)     #這是需要修改的地方,不然後續編譯後出錯
PLUGIN_TYPE = sqldrivers
load(qt_plugin)
DEFINES += QT_NO_CAST_TO_ASCII QT_NO_CAST_FROM_ASCII

2.2.3 編譯源碼

先切換到qmake所在的路徑下,然後執行下面命令(命令中的具體路徑要根據實際情況修改)

sudo ./qmake "INCLUDEPATH+=/usr/include/mysql" "LIBS+=-L/usr/lib/aarch64-linux-gnu/ -lmysqlclient"  /home/pi/work/qt-everywhere-src-5.10.0/qtbase/src/plugins/sqldrivers/mysql/mysql.pro 

如果沒報錯,執行下面的命令

sudo make  -j4

等待編譯完成,執行下面命令安裝編譯好的庫文件

sudo make install

安裝結果如下
在這裏插入圖片描述

3 總結

至此,整個編譯過程結束,問題解決。解決這種問題沒什麼技術難度,就是過程繁瑣些。只要更換新的qt版本同樣的問題還是會出現,記錄一下方便後續查詢使用。

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