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

时间:2013-10-03 16:20:36

标签: mysql qt dll static

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

1 个答案:

答案 0 :(得分:0)

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

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

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

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