Qt 6.2.4版本需要自行编译mysql的驱动,而源码\qtbase-everywhere-src-6.2.4\src\plugins\sqldrivers\mysql目录下没有.pro文件了,只有CMakeLists.txt,这就意味着需要使用cmake来编译了,可以用cmake-gui这个有用户界面的,在这里已经讲过了,现在主要讲一下通过命令行生成编译工程文件。尽管Qt的源码里有一个文档Qt/Docs/Qt-6.2.4/qtsql/sql-driver.html也提到了如何用命令行编译:
C:\Qt\6.0.0\Src\configure.bat -sql-mysql -- -DMySQL_INCLUDE_DIR="C:\mysql-8.0.22-winx64\include" -DMySQL_LIBRARY="C:\mysql-8.0.22-winx64\lib\libmysql.lib"
但是上面的这个我没有顺利跑通。所以还是讲一下我用的方法:
0、先cd到\qtbase-everywhere-src-6.2.4\src\plugins\sqldrivers目录下
1、命令行执行:cmake -B build -G "Visual Studio 16 2019" -DCMAKE_PREFIX_PATH="C:/Qt/6.2.4/msvc2019_64" -DCMAKE_INSTALL_PREFIX=install -DMySQL_INCLUDE_DIR="path\to\mysql-winx64\include" -DMySQL_LIBRARY="path\to\mysql-winx64\lib\libmysql.lib"
2、命令行执行:cmake --build build
3、安装命令:cmake --build build --target install
第2步会遇到问题:
cl : 命令行 error D8016: “/O2”和“/RTC1”命令行选项不兼容
只需要将QMYSQLDriverPlugin.vcxproj中的
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>改成<BasicRuntimeChecks>Default</BasicRuntimeChecks> 即可。