【问题标题】:Qt - SLL error on WindowsQt - Windows 上的 SSL 错误
【发布时间】:2011-05-19 21:35:06
【问题描述】:

我的应用在 Windows 上抛出以下错误:

QSslSocket:无法调用未解析的函数 SSLv3_client_method

QSslSocket:无法调用未解析的函数 SSL_CTX_new

QSslSocket:无法调用未解析的函数 SSL_library_init

QSslSocket:无法调用未解析的函数 ERR_get_error

QSslSocket:无法调用未解析的函数 ERR_error_string

我已经安装了 VS C++ Redistributables 和 OpenSSL,但我不知道如何告诉 Qt 动态链接到 openSSL。 我在 Windows 7 上使用 Qt 二进制文件和 Qt Creator 的 LGPL 版本(Linux 构建工作得很好)

【问题讨论】:

    标签: windows qt openssl msvcr90d.dll


    【解决方案1】:

    由于某种原因,Qt 不能很好地处理从 Win32 OpenSSL 安装项目下载的 dll。正如我所观察到的,该应用程序在安装了 Tortoise Svn 的机器上运行顺畅,我只是复制了 Tortoise 提供的 dll,这对我来说效果很好。

    我知道,奇怪的是那些 dll 可以工作,而 Win32 OpenSSL 安装项目中的那些 dll 没有,但现在从 Tortoise Svn 安装文件夹复制 dll 解决了我的问题。

    【讨论】:

    • 是那些 DLL 文件还是你只是复制所有这些文件?
    • 对我来说同样的问题。当我安装 Ruby22-x64 并且 Qt 发现 ssleay32.dll 附带 ruby​​ 时,我的 Qt 应用程序开始崩溃。
    【解决方案2】:

    从此website 下载最新的 OpenSSL 预构建二进制文件。

    我使用了 Win32 OpenSSL v0.9.8r Light,因为对于 v1 版本存在一些争议。 [客户端工具很好,你不需要完整的分发]

    确保安装 dll 以便它们在 windows 路径中可见。要么;

    • windows/system32目录
    • 应用程序目录
    • 或将 dll 的位置添加到路径环境变量中

    这适用于我的 Qt v4.6.2

    【讨论】:

    • 从第三方网站复制系统 .dll,尤其是那些涉及安全通信的网站,这不是一种非常明智的网络做法。
    猜你喜欢
    • 2018-10-01
    • 2011-11-23
    • 1970-01-01
    • 2014-07-30
    • 2023-03-03
    • 1970-01-01
    • 2021-07-05
    • 2018-05-20
    • 2022-01-18
    相关资源
    最近更新 更多