在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
一起使用吗?
答案 0 :(得分:1)
QT在 32bit
在 Windows 64位中 system32 文件夹没有 DLL OpenSSL 所需,只有 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
)发布/调试项目文件夹:
另一种选择是使用 Mingw 64bit ,但不知道这对于 QT 是否可行(这种情况下,如果您可以编译应用程序将仅在64位系统上运行。)