如何使用 OpenSSL 部署 QT 应用程序

Posted

技术标签:

【中文标题】如何使用 OpenSSL 部署 QT 应用程序【英文标题】:How to deploy QT application with OpenSSL 【发布时间】:2021-08-02 15:46:08 【问题描述】:

当我从它内置的目录运行应用程序时,没有问题,但是当我尝试从另一个目录运行应用程序时,在其中携带 exe 文件后,OpenSSL 不起作用。

我将 libcrypto-1_1-x64.dlllibssl-1_1-x64.dll 文件复制到同一目录中,windeployqt 负责其他 dll。可能缺少什么?如果需要,我该如何为运行时进行配置?

【问题讨论】:

你检查过这篇文章了吗:***.com/questions/57235510/… 如果你的操作系统是windows,你应该安装OpenSSL。 它是 Windows,我无法从命令行运行 openssl 命令,它给了我错误。尝试重新安装,但也没有用。当我部署应用程序时它必须工作吗? 【参考方案1】:

OpenSSL 库是通过 Qt 维护工具与 Qt 预编译的。因为它是一个 C 库,所以不管是 MSVC 还是 MingW 编译器。这个小指南应该有用:

    从维护工具安装 OpenSSL。

    独立于您的编译器,转到 C:\Qt\Tools\OpenSSL\Win_x64\bin(如果您有 64 位应用程序)。

    复制 libcrypto-1_1-x64.dll 和 libssl-1_1-x64.dll 并粘贴到您的发布或调试应用程序可执行文件中。

【讨论】:

谢谢,但无论我从哪里复制这两个 dll,它都不起作用。它可能与我的 Windows 版本的 openssl 相关,因为它是旧版本并且我无法更新它吗? 嗯。你的窗户是什么? Qt版本?编译器? OpenSSL 版本? 它是 Windows 10、Qt 6.2 和 OpenSSL 1.1.1k。我解决了这个问题,显然QT插件目录中有3个dll,在tls目录中。我将这个 tls 目录复制到我的 exe 旁边,现在我可以使用 OpenSSL 进行部署。 Qt 6.2。也许有些东西发生了变化,需要第三个 dll。以下简短指南适用于 >5.15.5。很好的收获。

以上是关于如何使用 OpenSSL 部署 QT 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

如何使用应用程序部署 Qt 库?

如何使用appimage部署qt5应用

如何使用 oracle 插件部署基于 qt 的应用程序

Qt OpenSSL 问题 - 在某些计算机上被阻止(?)

使用 Mac OS X 应用程序部署 Qt - 如何不加载任何插件?

在 Mac 和 Windows 上部署 Qt+Boost 应用程序