web-dev-qa-db-fra.com

Fonctions non résolues lors de l'utilisation de QSslSocket

J'ai essayé d'exécuter un programme simple écrit avec Qt et QSslSocket est utilisé. J'exécute ce programme sur une machine Ubuntu 12.04 avec OpenSSL installé . Mais j'ai eu les erreurs suivantes:

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

Comment puis-je réparer ces erreurs?

15
s4eed

Installez la dernière version de openSSL. yum install openssl, yum install libssl-dev..

Et ajoutez QT + = network dans votre fichier .pro

Source: http://codeblog.vurdalakov.net/2009/11/solution-qsslsocket-cannot-call.html

13
ScarCode

Sous Windows/MinGW, vous devez copier ces fichiers dans votre répertoire exe.

C:\Qt\Tools\mingw492_32\opt\bin\libeay32.dll
C:\Qt\Tools\mingw492_32\opt\bin\ssleay32.dll

Ou vous pouvez les copier dans C:\Qt\Tools\mingw492_32\bin si vous voulez que cela fonctionne avec toutes vos applications. De toute évidence, vous devez les distribuer avec votre programme.

Vous avez réellement not besoin d’ajouter QT += network.

30
Timmmm

Pour Ubuntu ou (Linux basé sur Debian), installer openssl et libssl-dev

c'est-à-dire Sudo apt-get install openssl libssl-dev .

Pour Red Hat, Fedora, CentOS (linux basé sur rpm) installent openssl et openssl-devel

c'est-à-dire miam installer openssl openssl-devel

3
Ajinkya Bhosale

J'ai eu le même problème avec QT 5.0.1 et QT 5.1.1 et j'ai finalement réalisé que je devais copier les fichiers OpenSSL DLL situés à côté du fichier binaire de l'application. Pour une raison quelconque, QT ne charge pas les fichiers DLL à partir du chemin Windows ...

J'ai utilisé OpenSSL Win32 0_9_8y

3

Vous devez inclure ce fichier:

 #include <QtNetwork>

Et dans votre fichier .pro, ajoutez cette ligne:

 QT += network
1
this.lau_

L'installation du paquetage lua-openssl sur debian semble avoir résolu le problème pour moi.

0
AdvancedNewbie

J'ai rétrogradé OpenSSL vers la version 1.0 et cela a fonctionné.

0
user7347514