
Qt4.7.0文档翻译:部署Qt 程序,Deploying Qt Applications
部署一个Qt 程序不需要进行任何的C++编程 。你所需要做的就是按照这个文档里描述的步骤以发布 (release) 模式构建Qt 和你的程序 。我们会在部署Qt 示例目录里面提供的 即插即画 程序的同时演示这个过程 。
有两种部署程序的方式:
•.静态链接
•.共享库(在Mac上叫做框架 ( Frameworks ) )
静态链接将产生一个独立的可执行程序。优点是 ,你只需要部署很少的几个文件。缺点是 ,可执行程序很大 ,并且没有灵活性(也就是说 ,如果这个程序或者 Qt 有新的版本了 ,那么部署过程就要重复一次 ),而且你无法部署插件 。
要部署基于插件的程序,你可以使用共享库的方式 。 共享库也使得可执行程序更小 、更灵活。例如 ,当使用共享库的方式时 ,用户可以自由地将程序所使用的Qt 库升级 。
另一个可能导致你使用共享库的方式来部署的原因是,你可能想要在一系列的程序中使用同样的Qt 库 。实际上 ,如果下载Qt 的二进 制安装程序,那么你获得的Qt 就是一个共享库 。
使用共享库的方式来部署的缺点是 ,你将会需要部署更多的文件 。要了解更多 ,就去看 创建共享库 。
|
Qt的库 |
|||
由于Qt 不是一个系统库,所以它必须 随你的程序一起重新发布;最少要重新发布那些 被你的程序使用的运行时库。然而 ,使用静态链接时,Qt 运行时库就 被编译到可执行程序中了。
通常,你应当将你用到的Qt 的所有插件 都部署,排除那些你确定了对于程序和用户无用的插件。
例如 ,你可能需要部署那些用来实现JPEG 支持和SQL 驱动的插件 ,但是你也应当部署那些用户可能需要的插件 ,包含那些提供易用性的插件。要了解更多关于插件的信息 ,就去看 如何创建 Qt 插件 文档 。
当你使用共享库的方式来部署一个程序的时候,你必须确保Qt 库会使用正确的路径来查找Qt 插件、文档、翻译等等东西。要做到这一点 ,你可以使用 qt.conf 文件 。要了解更多信息,就去看 使用qt.conf 文档 。
取决于配置情况 ,可能也需要重新发布与编译器相关的库 。要了解更多信息,就去看与平台相关的程序依赖小节 : X11 、 Windows 、 Mac 。
Qt 的某些库是基于第三方库的,而它们并不像 Qt 是采用双许可证的 。所以 ,当你部署一些使用这些库的程序时 ,要小心,尤其是当你将它们静态链接到程序中去时 。
下面的表格包含一个对于你应当知道的事情的不完全汇总。
|
Qt库 |
依赖 |
许可证方式 |
|
CLucene |
与Qt 一起发布的clucene 版本是采用GNU LGPL 2.1 版或者更新版本的。这对于闭源程序的开发者来说 ,包含者某些暗示。请查看 QtHelp模块文档 以了解更多信息 。 |
|
|
OpenSSL |
在某些配置情况下 , QtNetwork 会在运行时使用OpenSSL。对 OpenSSL 的部署同时受到许可证和出口限制的制约 。可以在 安全套接字层 (SSL) 类 文档中找到更多信息 。 |
|
|
WebKit |
WebKit采用GNU LGPL 2 版本或者更新版本。这对于闭源程序的开发者来说 ,包含者某些暗示。请查看 QtWebKit模块文档 以了解更多信息 。 |
|
|
Phonon |
Phonon在不同的平台上依赖原生的多媒体引擎。Phonon本身采用GNU LGPL 2 版本。请查看Phonon模块文档以了解更多关于许可证的信息,查看Phonon概述以了解它在不同平台上使用的后端的细节 。 |
部署Qt 程序的过程在各种各样的平台上都不同:
HxLauncher: Launch Android applications by voice commands