qt6没有mysql驱动,需要自己编译,那是相当之坑啊。
qt6的mysql驱动编译源码中,没有pro,只能用cmake进行编译
但是用了cmake-gui.exe使用了mingw和vs环境进行编译都编译失败
后来坑了一整天,终于搞定了,现分享给大家。
下载qt6.4.2已经编译好的lib,并复制到相应位置
我用的是mysql8.0
使用这个链接下载(如果不是6.4.2,你可以自己在github上搜索相应的版本进行下载)
Release QMYSQL driver 6.4.2 · thecodemonkey86/qt_mysql_driver · GitHub
下载完解压缩后:
将libcrypto-1_1-x64.dll,libmysql.dll,libssl-1_1-x64.dll这3个文件复制到D:\Qt\6.4.2\mingw_64\bin文件夹中
再将解压缩后中的sqldrivers的两个mysql驱动文件复制到D:\Qt\6.4.2\mingw_64\plugins\sqldrivers中
代码调整
在你自己工程源码的cmakelists中
调整这行find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets Sql),其实就是加了Sql这三个字符
加入另一行target_link_libraries(test_mysql PRIVATE Qt${QT_VERSION_MAJOR}::Sql)
然后在自己工程的cpp文件中加入
#include#includevoid MainWindow::on_pushButton_clicked(){ QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); db.setHostName("127.0.0.1"); //连接本地主机 db.setPort(3306); db.setDatabaseName("db_name"); db.setUserName("root"); db.setPassword("root"); bool ok = db.open(); if (ok){ qDebug() << "link success"; } else { qDebug() << "link failed"; }}
测试输出link success,连接成功。
坑死我也,,,希望大家在这个坑点节省时间
来源地址:https://blog.csdn.net/laomengnevergiveup/article/details/128848214