【问题标题】:Qt Dynamically load MySQL driverQt 动态加载 MySQL 驱动
【发布时间】:2018-03-04 17:10:13
【问题描述】:

我没有部署应用程序的经验。我手动开始(通过将 release.exe 复制到目标 PC 并 1-by-1 解决它的 DLL 依赖项)。我遇到了“未加载驱动程序未加载驱动程序”墙,现在我被卡住了。
我尝试在windeployqt 的帮助下重新开始,它编译了一组不错的文件和目录,但仍然出现同样的错误。
我尝试使用记事本 hack 检查 dll 的拱门,并尝试从不同的地方重新下载 libmysql.dll。我手动重建了qsqlmysql.dll(只是为了了解我真的需要libmysql.dll)。我将项目文件夹添加到 PATH 变量中,仍然无济于事。
我听说Dependecy Walker 可能会有所帮助,但它没有,它只是警告我在查找某些文件时出错,要引用,

Error: At least one required implicit or forwarded dependency was not found.
Warning: At least one delay-load dependency module was not found.
Warning: At least one module has an unresolved import due to a missing export function in a delay-load dependent module.  

所以我在乞求一种方法来了解将 DLL 放在哪里。或者只是为了一条路径,关于应用程序、dll 和一切都是 32 位的。

附:我刚刚了解到,如果我尝试静态链接该 .lib 文件(与 .dll 的 4MB 相比,它的大小为 30KB),则构建成功,但它会改变什么。仍然需要 DLL

【问题讨论】:

  • 你能在你的 .pro 文件中显示它是如何链接的吗
  • @MohammadKanan LIBS += "C:\Users\user\projfolder\libmysql.lib"。另外,我宁愿避免静态链接,因为在这种情况下它显然不是解决方案(.lib 文件没用)。请帮我以动态方式解决它

标签: mysql qt dll deployment driver


【解决方案1】:

here 下载 MySQL 的 32 位连接器,然后创建一个 动态 链接到该库,(项目 -> 添加库 -> 外部 -> 动态) ,勾选您正在开发的平台;类似:

win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../../../../../mysql/mysql-connector-c-6.1.11-win32/lib/ -llibmysql
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../../../../../mysql/mysql-connector-c-6.1.11-win32/lib/ -llibmysqld

INCLUDEPATH += $$PWD/../../../../../mysql/mysql-connector-c-6.1.11-win32/include
DEPENDPATH += $$PWD/../../../../../mysql/mysql-connector-c-6.1.11-win32/include

【讨论】:

  • 仍然是相同的消息 :( 我几乎得到了您在 .pro 文件中显示的代码。我移动了 .a 和 .dll 以确保 $PWD 本身。还有驱动程序仍未加载。
  • win32:CONFIG(release, debug|release): LIBS += -L$$PWD/./ -lmysql else:win32:CONFIG(debug, debug|release): LIBS += -L $$PWD/./ -lmysqld INCLUDEPATH += $$PWD/mysql-con/include DEPENDPATH += $$PWD/mysql-con/include
  • 您是否手动更新了.pro?你有没有看到我关于如何动态链接的答案的更新
  • 有区别,你的是lmysqld,我希望是llibmysql,链接到文件libmysql.lib不是libmysql.dll
  • <connector_path/lib/
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-17
  • 2020-08-02
  • 2022-12-16
相关资源
最近更新 更多