繁体   English   中英

QSslSocket错误

[英]QSslSocket errors

在Windows 7 Ultimate x64上的Qt 4.8中,当我尝试使用QNetworkAccessManager通过网络post()某些内容时:

_net_acc_mgr.post(QNetworkRequest(QUrl(...)),
                  QByteArray(...));

我遇到以下运行时错误:

QSslSocket: cannot resolve OPENSSL_add_all_algorithms_noconf
QSslSocket: cannot resolve OPENSSL_add_all_algorithms_conf
QSslSocket: cannot call unresolved function OPENSSL_add_all_algorithms_noconf
content-type missing in HTTP POST, defaulting to application/octet-stream

我清楚地记得几年前使用过相同的代码。 但是我忘记了尝试使用哪个版本的Qt。

在Qt 4.8中使用QNetworkAccessManager还有其他要求吗?

  • QT在32位上运行

  • Windows 64位系统中 ,文件夹system32没有OpenSSL所需的DLL ,只有sysWOW64文件夹中

  • 要解决此问题,您将需要安装OpenSSL 32的二进制版本。

下载针对Windows编译的文件(更新链接):

http://slproweb.com/download/Win32OpenSSL_Light-1_0_1g.exe

注意:在安装过程中,选择选项“ OpenSSL二进制(/ bin)目录”(可能是C:\\OpenSSL-Win32

安装后,为发布/调试项目文件夹复制DLL(从C:\\OpenSSL-32%HOMEDRIVE%\\OpenSSL-32 ):

  • 的libeay32.dll
  • libssl32.dll
  • ssleay32.dll

另一种选择是使用Mingw 64bit ,但不知道QT是否可行(这种情况,如果可以编译,则该应用程序将仅在64位系统上运行)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM