【发布时间】:2020-08-02 22:41:12
【问题描述】:
我知道这个论坛上已经有很多关于这个问题的主题,但我没有设法解决我的问题。
我的配置如下:
QT 版本:5.14.2 - mscv2017_64
编译器:mscv amd64
我的问题是我的应用程序没有加载 libmysql.dll。 这是我所做的:
我打开了qt提供的命令行MSCV 2017 64bits,并使用vcvarsall.bat amd64初始化了我的环境。
然后我按照documentation 中的说明构建了 sql 驱动程序。
然后,运行nmake和nmake install,在文件夹C:\Qt\5.14.2\msvc2017_64\plugins\sqldrivers中,我找到了以下文件。
然后我在创建应用程序的 exe 文件的文件夹中添加了 libmysql.dll。我从mysql服务器安装文件夹C:\Program Files\MySQL\MySQL Server 8.0\lib得到这个文件。
然后我重新构建了我的应用程序,但仍然出现相同的错误,说驱动程序未加载。我使用QT_DEBUG_PLUGINS=1 标志编译并得到了输出:
“插件 'C:/Qt/5.14.2/msvc2017_64/plugins/sqldrivers/qsqlpsqld.dll' 使用不兼容的 Qt 库。(不能混合调试和发布库。)” 不是插件 QFactoryLoader::QFactoryLoader() 检查目录路径“C:/Users/Thomas Bouchan/Documents/Personal/C++/SSVP/build-SSVP-project-Desktop_Qt_5_14_2_MSVC2017_64bit-Release/release/sqldrivers” ... 无法加载库 C:\Qt\5.14.2\msvc2017_64\plugins\sqldrivers\qsqlmysql.dll:找不到指定的模块。 QLibraryPrivate::loadPlugin 在“C:/Qt/5.14.2/msvc2017_64/plugins/sqldrivers/qsqlmysql.dll”上失败:“无法加载库 C:\Qt\5.14.2\msvc2017_64\plugins\sqldrivers\qsqlmysql.dll:指定的模块无法找到。” QSqlDatabase:未加载 QMYSQL 驱动程序 QSqlDatabase:可用驱动程序:QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7"
从此我不知道该怎么办了,因为在指定的文件夹中,dll在那里......是64位还是32位的问题?我应该用另一个编译器(不是amd64?)构建驱动程序吗?
【问题讨论】:
-
不能混合调试和发布库:不是 32/64 位的问题,而是 Debug/Release 的问题
-
我同意,但有什么问题吗?我在调试模式下在 Qt creator 中运行我的应用程序,而 qsqlmysqld.dll 是调试 dll ...
-
啊,我看到它是另一个插件,MySQL 稍后有不同的消息。看起来无法找到依赖 DLL。您可以尝试在dependency walker 中加载
qsqlmysql.dll吗?
标签: c++ qt mysql-connector