2010-12-06 101 views
6

我做了一个小应用程序,并构建了发布版本。现在我想将其上传到我的网站。我以前从来没有用Qt做过这个,所以我不确定我应该在二进制文件中包含什么。人们需要什么来运行我的应用程序?

如何确定哪些DLL应该包含在我的应用程序中?我在哪里得到它们?我正在运行Windows,但我也想知道如果我想发布Linux版本,我应该做些什么。

+3

对于linux只是给他们的来源,让他们编译它。 – Falmarri 2010-12-06 20:24:13

+3

@Falmarri:这样的意识形态观点。我相信你很清楚这通常是不可能的。 – Goz 2010-12-06 20:25:58

回答

9

对于Windows:

可以使用的Dependency Walker就看你应该做的船是Qt库(或其他)。这是包含在Visual Studio中的depends.exe可执行文件,但你可以从单独下载:http://www.dependencywalker.com/

加载您的应用程序成,它会列出所有,预计在运行时模块。您可能还必须发布与编译器兼容的Visual C++ Runtime Redistributable,该编译器与构建可执行文件的编译器(如果它是VC++)兼容。

请注意,dependency walker并没有考虑像Qt插件这样的东西。一个例子就是QtAssistant系统(用于帮助菜单类型的功能),Qt4依赖于Qt的sqlite功能,这通常是作为一个插件构建的(如果我记得的话,就是qtsqlite4.dll)。

对于Linux:

这是棘手,因为在Linux发行更宽差距。如果您想要发布源代码,您当然可以使用GNU构建系统,但是如果您要发布二进制代码,并且想要支持各种发行版,则最好为每个想要发布的平台构建程序包。


在我的过去,我在一家公司转而使用cmake和设置所有的项目后,并建立档案,使用的生成和构建针对不同的操作系统软件包。在Windows上,这意味着要连接Inno Setup,对于类Unix系统,cmake知道如何生成诸如可安装的shell脚本之类的东西。绝对让更轻松


我们的QA部门将在我们支持的平台,完全干净的虚拟机实例测试我们的软件,并查看是否有缺失。

2

如果你在谈论DLL,我认为它是关于Windows的。

使用Dependency Walker来查看DLL依赖关系。

或者...采取一个干净的系统,没有安装开发工具,并把你的可执行文件,尝试在那里运行,并查看哪些DLL是必要和不存在的报告。将DLL放在可执行文件附近。

0

对于Linux版本,您可以为每个Linux分支创建安装程序的平台目标版本,也可以让人们从源代码编译。如果您的应用程序是新的,您唯一的曝光方式就是为人们提供现成的安装程序和目标安装程序。新用户不喜欢从源代码编译软件包。

您可以先试用debian(.deb)和redhat(.rpm)软件包。这两个是非常受欢迎的线条,并会让你尝到一些东西。

相关问题