安装最新的Qt6.13后发现没有mysql的驱动,通过查询,只能同过源码自行编译。或者使用自带的odbc。本着学习和研究的态度决定自行编译试验一下。
1、安装源码
进入安装目录点开MaintenanceTool.app,
然后选择 第一项,Add or remove components
再勾选上 Sources,进行源码的安装
安装完成后,可以看到在 QT/6.1.3/目录下增加了 Src 目录,
在qt/6.1.3/Src/qtbase/src/plugins/sqldrivers目录下能看到所有数据库驱动的源文件。
2、设置环境变量
在~/.bash_profile 中设置环境变量
export QTDIR=/Users/XXX/Qt/6.1.3/macos
export CMAKE_PATH=/Users/XXX/Qt/Tools/CMake/CMake.app/Contents/bin
export NINJA_PATH=/Users/XXX/Qt/Tools/Ninja
export PATH=$PATH:$QTDIR/bin:$CMAKE_PATH:$NINJA_PATH
3、执行命令
然后在~目录下,执行
mkdir build-sqldrivers
cd build-sqldrivers
qt-cmake -G"Ninja" /users/XXXX/qt/6.1.3/Src/qtbase/src/plugins/sqldrivers -DCMAKE_INSTALL_PREFIX=/users/XXXX/qt/6.1.3/macos -DMySQL_INCLUDE_DIR="/usr/local/mysql/include" -DMySQL_LIBRARY="/usr/local/mysql/lib/libmysqlclient.dylib"
qt-cmake --build .
qt-cmake --install
DMySQL_INCLUDE_DIR和DMySQL_LIBRARY参数,是用户本地安装MySQL路径下的include和/lib/libmysqlclient.dylib,大家可以自行查找。
DCMAKE_INSTALL_PREFIX=/users/XXXX/qt/6.1.3/macos,安装路径,当执行qt-cmake --install 命令时会安装到Qt\6.1.3\macos\plugins\sqldrivers\目录下。
但是当我执行
qt-cmake --build . 和 qt-cmake --install 报错...
查了半天资料也没有解决,不知道谁了解这一块。最后替换为
cmake --build .
cmake --install .
执行成功。
在Qt\6.1.3\macos\plugins\sqldrivers\增加了 libqsqlmysql 两个文件
4、补充
有的小伙伴执行程序报以下错误:
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QODBC QPSQL
执行以下程序可以解决
install_name_tool -change libmysqlclient.dylib /usr/local/mysql/lib/libmysqlclient.dylib /users/XXX/qt/6.1.3/macos/plugins/sqldrivers/libqsqlmysql.dylib
小伙伴们可以试试,如果有问题,欢迎交流。