[英]QSslSocket: cannot call unresolved function
我使用Qt Creator 4.2.0運行Qt 5.7.1(MSVC 2015,32位)。 我有QSslSocket
的問題。 我收到以下錯誤:
qt.network.ssl: QSslSocket: cannot call unresolved function SSLv23_client_method
qt.network.ssl: QSslSocket: cannot call unresolved function SSL_CTX_new
qt.network.ssl: QSslSocket: cannot call unresolved function SSL_library_init
qt.network.ssl: QSslSocket: cannot call unresolved function ERR_get_error
qt.network.ssl: QSslSocket: cannot call unresolved function ERR_get_error
我去了以下位置openssl github並下載了zip文件。 我已將“libeay32.dll”和“ssleay32.dll”文件移到我的發布目錄中,我仍然遇到這些錯誤。 有沒有人讓QSslSocket
工作,可以給我步驟讓套接字工作或有任何建議?
我最終通過谷歌搜索到了這里。 在我的情況下,我在隨機機器上收到此錯誤,因為他們錯過了libeay32.dll
和ssleay32.dll
的正確版本。 它是“隨機的”,因為有些計算機將這些計算機從其他軟件加載到PATH
,而有些則沒有。
我通過將DLL添加到我的Qt安裝的bin
文件夾中為Qt Creator修復了這個問題,並通過在我的發行版中包含上述DLL來修復此問題。
這些DLL應該與Qt首先編譯的OpenSSL版本相同或類似。 如果您沒有自己編譯,從Qt 5.4開始,您可以使用QSslSocket::sslLibraryBuildVersionString()
進行查詢。 (信用: https : //stackoverflow.com/a/42297296/1666676 )
不要忘記您的64位應用程序應該具有64位版本的DLL,而32位應用程序應該具有32位DLL,因此您不會遇到與此問題相同的問題。
補充說明:
sslLibraryBuildVersionString()
返回“OpenSSL 1.0.2o”。 我使用1.0.2p作為我的發行版。 libcrypto-1_1*.dll
和libssl-1_1*.dll
。 標准Qt發行版尚未使用截至2018年9月的版本。 希望這有助於下一個人。 抱歉復活舊帖子。
將這兩個文件復制到路徑:'C:\\ Qt \\ Tools(msvc / mingw){version} \\ bin'
C:\Qt\Tools\(msvc|mingw)\opt\bin\libeay32.dll
C:\Qt\Tools\(msvc|mingw)\opt\bin\ssleay32.dll
你需要手動添加對OppenSSL的支持,因為android放棄了對它的支持,我使用的是QT 5.9而且它不適合你,所以你的任務是創建openSSL lib
您可以直接在這里下載https://wiki.openssl.org/index.php/Binaries
或者在這里https://indy.fulgan.com/SSL/
然后復制這些文件並將它們包含在您的項目中
libcrypto.so
libssl.so
這應該正常工作
或者您可以使用此腳本生成libcrypto.so
和libssl.so
,只需按步驟操作https://github.com/ekke/android-openssl-qt
通過結合現有答案和一些研究,我設法使其與MSVC2017 x64編譯器一起使用:
{Your_Qt_Folder}/{Qt_version}/msvc2017_64/bin
我解決了這個問題。
下載並安裝v1.0.2s << - ( libeay32.dll
, ssleay32.dll
), 網址為https://slproweb.com/products/Win32OpenSSL.html
復制libeay32.dll
和ssleay32.dll
在Qt文件夾中找到QtNetwork*.dll
。 在我的例子中,路徑是C:\\Qt\\Tools\\QtCreator\\bin
。
將libeay32.dll
和ssleay32.dll
粘貼到C:\\Qt\\Tools\\QtCreator\\bin
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.