18

Qtで記述され、QSslSocketを使用する単純なプログラムを実行しようとしました。

OpenSSLがインストールされているUbuntu12.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

これらのエラーを修正するにはどうすればよいですか?

4

7 に答える 7

35

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

于 2016-01-31T18:17:07.253 に答える
13

最新のopenSSLバージョンをインストールします。 yum install opensslyum install libssl-dev.

そして、.proファイルにQT+=ネットワークを追加します

ソース:http ://codeblog.vurdalakov.net/2009/11/solution-qsslsocket-cannot-call.html

于 2012-06-01T08:25:28.530 に答える
3

QT5.0.1とQT5.1.1でも同じ問題が発生しましたが、最終的に、アプリケーションのバイナリファイルの横にOpenSSLDLLファイルをコピーする必要があることに気付きました。何らかの理由で、QTはWindowsパスからDLLファイルをロードしません...

私は使用しましたOpenSSL Win32 0_9_8y

于 2013-09-05T19:15:59.153 に答える
3

Ubuntuまたは(DebianベースのLinux)の場合はopensslとlibssl-devをインストールします

つまり、sudo apt-get installopenssllibssl-dev

Red Hat、Fedora、CentOS(rpmベースのLinux)の場合、opensslおよびopenssl-develをインストールします

つまり、yum install opensslopenssl-devel

于 2013-10-17T12:39:59.823 に答える
2

OpenSSLをバージョン1.0にダウングレードしたところ、機能しました。

于 2018-08-03T05:51:25.460 に答える
1

このファイルを含める必要があります:

 #include <QtNetwork>

そして、.proファイルに次の行を追加します。

 QT += network
于 2012-06-01T08:09:13.007 に答える
0

lua-opensslパッケージをdebianにインストールすると、問題が解決したようです。

于 2016-11-23T20:37:24.170 に答える