哪些Qt DLL文件需要复制以使我的程序独立运行?

5

我正在尝试创建一个包含应用程序的分发目录。我已经将几个Qt DLL文件复制到该目录中,程序似乎可以正常运行,但有一个例外:它似乎无法找到SQLite的SQL插件。将qtsqlite.dll复制到目录中并不能使我的应用程序打开或创建SQLite文件。为了使程序能够读取数据库,必须遵循哪些目录结构或复制哪些附加文件?

3个回答

4
您可以使用depends.exe来查看您的exe的依赖关系,并确保它们全部包含在内。
此外,请阅读this page有关qt插件的内容。它们应该位于名为“plugins”的特定目录中,而不是与所有其他dll文件在同一主目录中。

默认情况下,应用程序将使用其启动目录作为插件目录;您需要将驱动程序放在基类目录名称中:例如,app_dir/sqldrivers。 - dwj

2
很可能,qtsqlite.dll本身依赖于原始的SQLite DLL,您也需要复制它们。
不要忘记在分发中包含LGP许可证副本以及指向您包含的库的原始下载资源和源代码的指针。遵守法律 :)

2

感谢@shoosh提供的链接,我能够解决问题。我需要在分发目录中创建sqldrivers子目录,并将qsqlite.dll库放入其中。但这只是第一步。你有什么关于创建完整的Windows安装程序的提示和资源吗?我主要是Linux程序员,对这个领域不熟悉。


也许NSIS是你的起点:http://nsis.sourceforge.net/ 它是开源且可脚本化的。非常适合Linux程序员 :-D - ypnos

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接