2017-06-01 68 views
2

我想用QNetworkAccessManager通過HTTPS訪問的頁面SSL錯誤,但是當我嘗試它,我得到以下輸出:QNetworkAccessManager給出拱

qt.network.ssl: QSslSocket: cannot resolve CRYPTO_num_locks 
qt.network.ssl: QSslSocket: cannot resolve CRYPTO_set_id_callback 
qt.network.ssl: QSslSocket: cannot resolve CRYPTO_set_locking_callback 
qt.network.ssl: QSslSocket: cannot resolve ERR_free_strings 
qt.network.ssl: QSslSocket: cannot resolve EVP_CIPHER_CTX_cleanup 
qt.network.ssl: QSslSocket: cannot resolve EVP_CIPHER_CTX_init 
qt.network.ssl: QSslSocket: cannot resolve sk_new_null 
qt.network.ssl: QSslSocket: cannot resolve sk_push 
qt.network.ssl: QSslSocket: cannot resolve sk_free 
qt.network.ssl: QSslSocket: cannot resolve sk_num 
qt.network.ssl: QSslSocket: cannot resolve sk_pop_free 
qt.network.ssl: QSslSocket: cannot resolve sk_value 
qt.network.ssl: QSslSocket: cannot resolve SSL_library_init 
qt.network.ssl: QSslSocket: cannot resolve SSL_load_error_strings 
qt.network.ssl: QSslSocket: cannot resolve SSL_get_ex_new_index 
qt.network.ssl: QSslSocket: cannot resolve SSLv2_client_method 
qt.network.ssl: QSslSocket: cannot resolve SSLv3_client_method 
qt.network.ssl: QSslSocket: cannot resolve SSLv23_client_method 
qt.network.ssl: QSslSocket: cannot resolve SSLv2_server_method 
qt.network.ssl: QSslSocket: cannot resolve SSLv3_server_method 
qt.network.ssl: QSslSocket: cannot resolve SSLv23_server_method 
qt.network.ssl: QSslSocket: cannot resolve X509_STORE_CTX_get_chain  
qt.network.ssl: QSslSocket: cannot resolve OPENSSL_add_all_algorithms_noconf 
qt.network.ssl: QSslSocket: cannot resolve OPENSSL_add_all_algorithms_conf  
qt.network.ssl: QSslSocket: cannot resolve SSLeay 
qt.network.ssl: QSslSocket: cannot resolve SSLeay_version 
qt.network.ssl: QSslSocket: cannot call unresolved function CRYPTO_num_locks 
qt.network.ssl: QSslSocket: cannot call unresolved function CRYPTO_set_id_callback 
qt.network.ssl: QSslSocket: cannot call unresolved function CRYPTO_set_locking_callback 
qt.network.ssl: QSslSocket: cannot call unresolved function SSL_library_init 
qt.network.ssl: QSslSocket: cannot call unresolved function SSLeay 
qt.network.ssl: QSslSocket: cannot call unresolved function SSLeay_version 

我使用弓64位x86和QT 5.9。

鍵入的終端後:openssl version -v
OpenSSL 1.1.0f 25 May 2017,所以它是最新的。

我也加入到main.cpp中:

qDebug() << "SSL version use for build " 
     << QSslSocket::sslLibraryBuildVersionString(); 
qDebug() <<"SSL version use for run-time " 
     << QSslSocket::sslLibraryVersionNumber(); 

和我有以下幾點:

SSL version use for build: "OpenSSL 1.0.1e-fips 11 Feb 2013" 
SSL version use for run-time: 0 

你有什麼建議,我有什麼可以做的來解決這個問題?

回答

0

檢查你的主機

QNetworkAccessManager上安裝的OpenSSL版本試圖尋找其中在運行時加載的lib的功能。

很可能您已安裝舊版本OpenSSL

同樣在Qt檢查這個thread VS OpenSSL編譯時/運行時依賴