【问题标题】:Cannot find libmysql.dll when building Qt statically静态构建Qt时找不到libmysql.dll
【发布时间】:2013-10-03 16:20:36
【问题描述】:

A 已经用 -static 选项和 -qt-sql-mysql 编译了 Qt。一切顺利(编译等,它在我的电脑上工作)。但是当我将程序放在另一台计算机上时,我收到消息“找不到 libmysql.dll ...”。没有其他事情发生。

【问题讨论】:

    标签: mysql qt dll static


    【解决方案1】:

    静态链接的 Qt 并不意味着 sql 插件将使用静态数据库库。您需要设置 mysql 库的路径,以便使用静态库。实际上,您正在使用所谓的导出 mysql 库。

    让程序运行的直接解决方案是在程序的安装路径中包含libmysql.dll

    长期的解决方案是使用正确的静态 mysql 库重新配置您的 Qt 构建,并重新构建插件。您需要将configure 指向库的正确变体。您可以拥有一个作为静态库的.lib 文件和另一个作为导入库的.lib 文件。前者会更大,这就是你想要的。后者将使您的可执行文件依赖于mysql.dll

    mysql C 连接器库默认构建为动态库。您必须手动将其构建为静态库。它需要一些tweaking of the cmakefile,IIRC。我有一段时间没做过了。一般说明是here,但同样没有现成的静态库选项。

    【讨论】:

    • 我使用了选项 -qt-sql-mysql 和 -static 标志。我认为它是非插件版本,因为它是在配置帮助中编写的。
    • @FilipPost:您可以拥有一个与动态 mysql 库链接的静态插件,而这正是您所拥有的。
    • 那么如何获取静态mysql库呢?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-01
    • 2013-02-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多