[英]Unresolved Functions While Working With QSslSocket
我嘗試運行一個用Qt編寫的簡單程序,並使用QSslSocket。我在安裝了OpenSSL的Ubuntu 12.04機器上運行該程序。 但是我遇到了以下錯誤:
QSslSocket: cannot call unresolved function SSLv3_client_method
QSslSocket: cannot call unresolved function SSL_CTX_new
QSslSocket: cannot call unresolved function SSL_library_init
QSslSocket: cannot call unresolved function ERR_get_error
我該如何解決這些錯誤?
在Windows / MinGW上,您需要將這些文件復制到exe目錄。
C:\Qt\Tools\mingw492_32\opt\bin\libeay32.dll
C:\Qt\Tools\mingw492_32\opt\bin\ssleay32.dll
或者,如果您希望它可以與您的所有應用程序一起使用,則可以將它們復制到C:\\Qt\\Tools\\mingw492_32\\bin
。 顯然,您需要將它們與您的程序一起分發。
你其實並不需要增加QT += network
。
安裝最新的openSSL版本。 yum install openssl
, yum install libssl-dev.
。
並在.pro文件中添加QT + = network
來源: http : //codeblog.vurdalakov.net/2009/11/solution-qsslsocket-cannot-call.html
我在QT 5.0.1和QT 5.1.1中遇到了同樣的問題,最后我意識到我需要在應用程序二進制文件旁邊復制OpenSSL DLL文件。 由於某種原因,QT不從Windows路徑加載DLL文件...
我使用過OpenSSL Win32 0_9_8y
對於Ubuntu或(基於Debian的Linux),安裝openssl和libssl-dev
即sudo apt-get install openssl libssl-dev 。
對於Red Hat,Fedora,CentOS(基於rpm的linux)安裝openssl和openssl-devel
即yum install openssl openssl-devel
您需要包含此文件:
#include <QtNetwork>
在.pro
文件中,添加以下行:
QT += network
我將OpenSSL降級到版本1.0並且有效。
在debian上安裝lua-openssl軟件包似乎已經為我解決了這個問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.