Qt5 12 4編譯MySQL驅動備忘

2021-09-24 21:31:11 字數 2186 閱讀 7534

qt5.12.4發布,本想不去理會,但changelog中提到qfile::copy()的一處bug,恰是當前乙個小專案上用到的,雖然也可以想辦法規避,但猶豫了一下,還是跟風安裝了新版,安裝完成後,才發現qt5.12.4中並沒有預設自帶qsqlmysql.dll,這可叫我頭大了,qt5.12.3時期嘗試過自己編譯這個驅動,然而並沒有成功。現在想要用它,就不得不搞了也…

qtbase-everywhere-src-5.12.4.tar.xz

以前編譯mysql驅動的時候,都是直接從原始碼中將sqldrivers路徑解壓出來用

.\qtbase-everywhere-src-5.12.4\src\plugins\sqldrivers

這次還是先這樣試著,各種錯誤就不提了,反正失敗了。記得上次qt5.12.3也是卡在這裡。

將上述原始碼完整解壓到某路徑,比如

d:\qtbase-everywhere-src-5.12.4

進入sqldrivers路徑

d:\qtbase-everywhere-src-5.12.4\src\plugins\sqldrivers

這裡需要做兩處編輯

修改.\qsqldriverbase.rpi

qt  = core core-private sql-private

# for qmake_use in the parent projects.

#include($$shadowed($$pwd)/qtsqldrivers-config.pri)

include($$shadowed($$pwd)/configure.pri)

plugin_type = sqldrivers

load(qt_plugin)

defines += qt_no_cast_to_ascii qt_no_cast_from_ascii

修改.\mysql\mysql.pro

target = qsqlmysql

headers += $$pwd/qsql_mysql_p.h

sources += $$pwd/qsql_mysql.cpp $$pwd/main.cpp

#qmake_use += mysql

other_files += mysql.json

plugin_class_name = qmysqldriverplugin

include(../qsqldriverbase.pri)

win32:libs += -ld:/programs/mysql/mysql-5.7.26-win32/lib -llibmysql

includepath += d:/programs/mysql/mysql-5.7.26-win32/include

dependpath += d:/programs/mysql/mysql-5.7.26-win32/include

注釋掉qmake_use += mysql並且新增mysql庫的路徑。

啟動命令列

qt 5.12.4 (mingw 7.3.0 32-bit)

這裡編譯的是32位版本,因此要啟動32位對應的命令列,前面mysql.pro中的庫路徑也要是32位mysql的庫路徑。如果是編譯64位版本,啟動對應的命令列,修改mysql.pro中的庫路徑,做好對應。

在命令列中依次執行:

cd d:\qtbase-everywhere-src-5.12.4\src\plugins\sqldrivers\mysql

qmake

mingw32-make -j8

mingw32-make install

至此結束

使用的mysql版本是5.7.26,發現其32位版本的libmysql.dll還要依賴32位的msvcr120.dll和msvcp120.dll。如果後期打包的程式中不包含這兩個dll或者系統中未註冊這兩個dll,都可能會導致出現:

qmysql driver not loaded

vs2017和QT5 12 4開發環境搭建

1.解除安裝舊的vs和qt 3.配置 使用c 的桌面開發 1 登入microsoft accout 4.檔案 賬戶設定 enterprise njvyc bmhx2 g77mm 4xjmr 6q8qf 6.qt安裝 qt opensource windows x86 5.12.4.exe 1 登入q...

Qt編譯MySql驅動

我使用的環境是 vs2010 qt4.8.5 mysql5.6 首先,通過qt 4.8.5 command prompt進入qtdir src plugins sqldriver mysql目錄之下。而mysql預設安裝目錄是有空格的 program files mysql makefile無法準確...

編譯QT的mysql驅動

1.安裝mysql的時候一定要安裝 libs include files 的開發者模組 2.設定環境變數 path systemroot system32 systemroot systemroot system32 wbem c program files microsoft sql server...