mysql - 静态构建 Qt 时找不到 libmysql.dll

标签 mysql qt dll static

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

最佳答案

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

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

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

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

关于mysql - 静态构建 Qt 时找不到 libmysql.dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19164223/

相关文章:

c++ - 如何在qt中做重叠的自定义项目?

c++ - QTableView如何以编程方式选择多列

dll - 为什么 mingw 编译的 Game Maker 扩展在没有 -static 的情况下编译时会在退出时崩溃?

dll - Team City 中的程序集版本和 Dll 版本

php - 在 PHP 中动态更改 mysqli 连接超时

php - 输出排序

php 无法连接到 mysql 并查询用户/密码

java - 在 MySQL 中使用印度数字分隔符格式化货币金额

c++ - 使用 QStackedWidget 的分层 QTreeView 映射

c++ - 分析共享库中的重复代码链接