Deploying Qt Applications

2026-01-31 08:33:22

部署 Qt 应用程序不需要任何 C++ 编程。您只需按照本文档中描述的步骤,在发布模式下构建 Qt 和您的应用程序即可。

静态库与共享库

部署应用程序有两种方法:

静态链接

共享库(Mac 上的框架)

静态链接会产生一个独立的可执行文件。优点是只需部署几个文件。缺点是可执行文件较大,没有灵活性(例如,应用程序或 Qt 的新版本需要重复部署过程),而且无法部署插件。

要部署基于插件的应用程序,可以使用共享库方法。共享库还能提供更小、更灵活的可执行文件。例如,使用共享库方法,用户可以独立升级应用程序使用的 Qt 库。

使用共享库方法的另一个原因是,您想在一个应用程序家族中使用相同的 Qt 库。事实上,如果您下载 Qt 的二进制安装包,就会得到作为共享库的 Qt。

共享库方法的缺点是需要部署更多的文件。有关详细信息,请参阅创建共享库。

部署 Qt 库

除非 Qt 是系统库的一部分,否则它必须与应用程序一起重新发布。最起码也要重新发布应用程序使用的运行库。不过,通过静态链接,Qt 运行时可以编译到可执行文件中。

一般来说,您应部署 Qt 构建所使用的所有插件,但不包括那些您认为对应用程序及其用户来说不必要的插件。

例如,您可能需要部署 JPEG 支持和 SQL 驱动程序的插件,但您也应该部署用户可能需要的插件,包括可访问性插件。有关插件的更多信息,请参阅如何创建 Qt 插件。

使用 Qt Qml的应用程序还需要部署它们使用的QML 模块。

在使用共享库方法部署应用程序时,必须确保 Qt 库使用正确的路径查找 Qt 插件、文档、翻译等。为此,您可以使用qt.conf 文件。更多信息,请参阅使用 qt.conf。

根据配置,特定于编译器的库也必须重新发布。更多信息,请参阅X11、Windows 和macOS 的特定平台应用程序依赖性。

授权

Qt 的某些库基于第三方库,这些第三方库没有使用与 Qt 相同的双重许可模式。因此,在部署使用这些库的应用程序时必须小心谨慎,尤其是当应用程序静态链接到这些库时。有关详细信息,请参阅Qt 中使用的第三方代码。

QtNetwork 的某些配置在运行时使用 OpenSSL。OpenSSL 库的部署受许可和出口限制的制约。更多信息,请参阅安全套接字层 (SSL) 类。

特定平台注意事项

不同平台部署 Qt 应用程序的程序各不相同:

用于 X11 平台的 Qt

适用于 Windows 的 Qt

适用于 macOS 的 Qt

适用于 Android 的 Qt