簡體   English   中英

使用QSslSocket時未解決的函數

[英]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 opensslyum 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM