簡體   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