Windows Qt5 中的 OpenSSL
OpenSSL in Qt5 on Windows
我正在尝试 link openssl with qt5.12 但当 运行 可从 qt 和命令行执行时结果不同。我使用 QSslSocket::supportsSsl()、QSslSocket::sslLibraryVersionString() 和 QSslSocket::sslLibraryBuildVersionString() 来观察结果。当来自 qt 的 运行 exe 时,我分别得到以下输出 true
OpenSSL 1.1.1d 10 Sep 2019
OpenSSL 1.1.1k 25 Mar 2021
和命令行 false
""
OpenSSL 1.1.1k 25 Mar 2021
。 exe 使用 msvc 2017 64 位编译。可能是什么问题以及 qt 从哪里获得该库?
使用 listdlls 工具,我设法找到了 openssl DLL 的名称和位置。它们是 libssl-1_1-x64.dll
和 libcrypto-1_1-x64.dll
,位于 %QT_INSTALL_PATH%/Tools/QtCreator/bin
。将这些 DLL 复制到项目的构建文件夹解决了问题。
QtCreator 使用的构建环境显然是默认环境,可以在 Projects -> Run
中找到。它设置了许多环境变量,在我的例子中,它更新了 PATH
变量,添加了 QtCreator bin 文件夹的路径。
Qt 默认不提供 SSL 库,您需要手动安装它们,以确保您有兼容的 SSL 库从 Qt 维护工具[=19= 安装OpenSSL XXX Toolkit
] 然后在 <Qt directory>/Tools/OpenSSL
中,您将找到带有二进制文件的 OpenSSL 包。
为了将 Windows Qt 应用程序完全发布到 end-users,请仔细研究 https://doc.qt.io/qt-5/windows-deployment.html
我正在尝试 link openssl with qt5.12 但当 运行 可从 qt 和命令行执行时结果不同。我使用 QSslSocket::supportsSsl()、QSslSocket::sslLibraryVersionString() 和 QSslSocket::sslLibraryBuildVersionString() 来观察结果。当来自 qt 的 运行 exe 时,我分别得到以下输出 true
OpenSSL 1.1.1d 10 Sep 2019
OpenSSL 1.1.1k 25 Mar 2021
和命令行 false
""
OpenSSL 1.1.1k 25 Mar 2021
。 exe 使用 msvc 2017 64 位编译。可能是什么问题以及 qt 从哪里获得该库?
使用 listdlls 工具,我设法找到了 openssl DLL 的名称和位置。它们是 libssl-1_1-x64.dll
和 libcrypto-1_1-x64.dll
,位于 %QT_INSTALL_PATH%/Tools/QtCreator/bin
。将这些 DLL 复制到项目的构建文件夹解决了问题。
QtCreator 使用的构建环境显然是默认环境,可以在 Projects -> Run
中找到。它设置了许多环境变量,在我的例子中,它更新了 PATH
变量,添加了 QtCreator bin 文件夹的路径。
Qt 默认不提供 SSL 库,您需要手动安装它们,以确保您有兼容的 SSL 库从 Qt 维护工具[=19= 安装OpenSSL XXX Toolkit
] 然后在 <Qt directory>/Tools/OpenSSL
中,您将找到带有二进制文件的 OpenSSL 包。
为了将 Windows Qt 应用程序完全发布到 end-users,请仔细研究 https://doc.qt.io/qt-5/windows-deployment.html