c – 人们需要运行我的应用程序?

我做了一个小应用程序并构建了一个发布版本.现在我想将它上传到我的网站.我以前从未用Qt做过这个,所以我不确定我应该包含什么以及二进制文件.

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

解决方法

对于Windows:

您可以使用依赖性walker来查看您应该发布的Qt库(或其他).这是Visual Studio附带的depends.exe可执行文件,但您可以从以下位置单独下载:http://www.dependencywalker.com/

将您的应用程序加载到其中,它将列出运行时期望的所有模块.您可能还必须提供与您构建可执行文件的编译器兼容的Visual C运行时可再发行组件(如果它是VC).

请注意,依赖性walker不会考虑像Qt插件这样的东西.这方面的一个例子是QtAssistant系统(用于帮助菜单类型的功能),从Qt4开始依赖于Qt的sqlite功能,它通常构建为插件(如果我记得,则为qtsqlite4.dll).

对于Linux:

由于Linux发行版中存在更大的差异,因此这更为棘手.如果你想发布源代码,你当然可以使用GNU构建系统,但是如果你要发送二进制文件,并且想要支持各种发行版,你可能最好为你想要发布的每个平台构建软件包.

在我过去,我工作的公司转而使用cmake,在设置了所有项目和构建文件之后,使用它来为不同的操作系统生成构建和包.在Windows上,这意味着与Inno Setup挂钩,对于类Unix系统,cmake知道如何生成可安装shell脚本之类的东西.绝对让生活变得更轻松.

我们的QA部门将在我们支持的平台的虚拟机实例中测试我们的软件,完全清理,并查看是否有任何遗漏.

相关文章

/** C+⬑ * 默认成员函数 原来C++类中,有6个默认成员函数: 构造函数 析构函数 拷贝...
#pragma once // 1. 设计一个不能被拷贝的类/* 解析:拷贝只会放生在两个场景中:拷贝构造函数以及赋值运...
C类型转换 C语言:显式和隐式类型转换 隐式类型转化:编译器在编译阶段自动进行,能转就转,不能转就编译...
//异常的概念/*抛出异常后必须要捕获,否则终止程序(到最外层后会交给main管理,main的行为就是终止) try...
#pragma once /*Smart pointer 智能指针;灵巧指针 智能指针三大件//1.RAII//2.像指针一样使用//3.拷贝问...
目录<future>future模板类成员函数:promise类promise的使用例程:packaged_task模板类例程...