Ich habe diese Ausgabe in zwei meiner Qt-Anwendungen bemerkt, die QNetworkRequest verwenden, um Daten von außerhalb über QNeworkRequest zu laden:
%Vor%Ein Beispiel für die Anforderung, die zum Anzeigen dieser Warnungen führt, ist
%Vor%Ich bin mir ziemlich sicher, dass in keiner der Abfragen TLS / SSL enthalten ist, alle sind einfach HTTP. Die Nachrichten werden immer angezeigt, nachdem die erste Anforderung unabhängig von der URL ausgelöst wurde. Ich habe keinerlei Absicht, SSL zu umgehen, SSL wird im Code nicht erwähnt , was bedeutet, dass ich die Warnungen nicht programmatisch ignorieren kann.
Mein Setup ist Windows 7 64 Bit, MSVC2013 und MinGW, Qt 5.3.2. Die Nachrichten werden unabhängig vom verwendeten Compiler angezeigt. Es sind keine OpenSSL- oder andere SSL-Entwicklungsbibliotheken installiert.
Und die Frage ist: Wie werde ich diese Warnungen los?
Dies sind nur die Aufrufe von qWarning (), wenn OpenSSL-Funktionen aufgelöst werden. Es versucht nicht, diese Funktionen aufzurufen, sondern sie nur zu lösen. Wenn Sie nicht aufgelöste Funktionen aufrufen, erhalten Sie stattdessen QSslSocket: cannot call unresolved function ...
warning.
Die Warnung ist das Ergebnis von OpenSSL-Funktionen, die zur Laufzeit durch einen Aufruf von QSslSocket::supportsSsl()
static in QNetworkAccessManager::supportedSchemesImplementation()
aufgelöst werden, der unterstützte Schemata --- http
zurückgibt und, wenn SSL https
unterstützt.
Sie haben einige Optionen für diese Warnungen,
-no-openssl
, das an configure
übergeben wurde
https
verfügbar wird - wahrscheinlich nicht das, was Sie wollen Wir hatten gelegentlich Kunden, die sehr ähnliche Warnmeldungen erhielten, aber die Software stürzte ebenfalls ab.
%Vor%Wir haben festgestellt, dass es darauf zurückzuführen ist, dass das Programm, obwohl wir nicht SSL verwendet haben, eine Kopie von OpenSSL auf dem Computer des Kunden gefunden und versucht hat, damit zu kommunizieren. Die Version, die gefunden wurde, war jedoch zu alt ( ab Qt 5.2 v1.0.0 oder höher ist erforderlich) ).
Unsere Lösung bestand darin, die OpenSSL-DLLs zusammen mit unserer Anwendung zu verteilen (~ 1,65 MB). Die Alternative besteht darin, Qt von Grund auf ohne OpenSSL-Unterstützung zu kompilieren.
Tags und Links qt ssl qsslsocket