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