QT und OpenSSL-DLLs



  • Hallo zusammen

    ich möchte gern die neueste Version des QT-Frameworks an den Start bringen und muss dafür vorher sicherstellen, dass meine Anwendung, die openssl verwendet auch funzt.
    Nun wurde das neueste QT ( 5.15.1 ) mit OpenSSL 1.1.1g Apr 2020" gebaut.

    Das Problem: QSslSocket::supportsSsl() liefert FALSE.

    Daher habe ich mir die OpenSSL-Sourcen runtergeladen und gebaut ( in exakt der Version 1.1.1g ). Dann habe ich die beiden DDLs in das Verzeichnis der Anwendung kopiert. Das hat keinerlei Verbesserung gebracht. Nachwievor liefert die Funktion FALSE zurück.

    Ich möchte nur ungern QT selber kompilieren. Es muss ja auch so irgendwie funktionieren. Nun scheint es so zu sein,dass QT immer noch die alten DLL-Namen ( libeay32.dll, ssleay32.dll ) sucht, daher hab ich die gebauten DLLs umbenannt, aber auch das hilft nicht.

    Interessant: der DependencyWalker zeigt die openSSL-DLLs nicht an, nur die QT und C++-DLLs.

    Jemand ne Idee?



  • Qt lädt die beiden DLLs dynamisch (daher tauchen sie nicht im DependencyWalker auf).
    Aber schau mal die Antwort in QSslSocket and supportsSsl() returns false an. How to enable ssl support for Qt? könnte auch noch hilfreich sein.

    Edit: Wenn du genau wissen willst, wie Qt die Dateien lädt, schau mal in "qtbase/src/network/ssl/qsslsocket_openssl_symbols.cpp".



  • Hab es hinbekommen. Scheinbar erkennt er die DLLs nicht im Projektverzeichnis/Arbeitsverzeichnis. Ich habe die beiden openssl-DLLs in den binary-Ordner des Frameworks kopiert, in meinem Fall C:\QT\5.15.1\mingw81_64\bin, und jetzt funzt es. Standalone klappt es auch, wenn man die DLLs ins Verzeichnis der Applikation legt.



  • @It0101 sagte in QT und OpenSSL-DLLs:

    Standalone klappt es auch, wenn man die DLLs ins Verzeichnis der Applikation legt.

    Das sollte immer klappen.


Log in to reply