我做了一个小应用程序并构建了一个发布版本。现在我想将它上传到我的网站。我以前从未用Qt做过这个,所以我不确定我应该包括什么以及二进制文件。
如何确定应用程序中应包含哪些DLL?我从哪里得到它们?我正在运行Windows,但我也想知道如果我想发布Linux版本应该怎么做。
答案 0 :(得分:9)
对于Windows:
您可以使用依赖性walker来查看您应该发布的Qt库(或其他)。这是Visual Studio附带的depends.exe
可执行文件,但您可以单独下载:http://www.dependencywalker.com/
将您的应用加载到其中,它将列出运行时期望的所有模块。您可能还必须提供与您使用可编译器构建的编译器兼容的Visual C ++ Runtime Redistributable(如果它是VC ++)。
请注意,依赖者walker不会考虑像Qt插件这样的东西。这方面的一个例子是QtAssistant系统(用于帮助菜单类型功能),从Qt4开始依赖于Qt的sqlite功能,该功能通常作为插件构建(如果我记得的话,qtsqlite4.dll
)。
对于Linux:
由于Linux发行版中存在更大的差异,因此这更为棘手。如果你想发布源码,你当然可以使用GNU构建系统,但是如果你要发送二进制文件,并且想要支持各种发行版,你可能最好为你想要发布的每个平台构建软件包。 / p>
在我过去,我工作过的公司切换到使用cmake
并在设置了所有项目和构建文件后,使用它来为不同的操作系统生成构建和包。在Windows上,这意味着与Inno Setup挂钩,对于类Unix系统,cmake知道如何生成可安装shell脚本之类的东西。绝对让生活更容易。
我们的质量检查部门将在我们支持的平台的虚拟机实例中测试我们的软件,完全清理,并查看是否缺少任何内容。
答案 1 :(得分:2)
如果你在谈论DLL,我认为它是关于Windows的。
使用Dependency Walker查看DLL依赖项。
或者......采用一个干净的系统,没有安装开发工具,并放置您的可执行文件,尝试在那里运行它,并查看哪些DLL报告为必要且不存在。将DLL放在可执行文件附近。
答案 2 :(得分:0)
对于Linux版本,您可以为每个Linux分支创建平台目标版本的安装程序,也可以让人们从源代码编译。如果您的应用是新的,那么您接触的唯一方式就是为现成的安装人员和目标安装人员提供服务。新用户厌恶从源代码编译软件包。
您可以先尝试使用debian(.deb)和redhat(.rpm)包。这两个是非常受欢迎的线条,让你有一些东西的味道。