Seite 1 von 1

openssl support in qt

Verfasst: 7. September 2008 15:41
von ptr
hallo,

qt bietet ja seit 4.3 openssl support. ich hab mir gedacht ich probiers mal aus, und hab mir qt 4.4 und openssl heruntergeladen und installiert, so weit so gut. nur leider funktionierts nicht, also QSslSocket::supportsSsl liefert false zurück!

hab irgendwo gelesen, dass beim bauen von qt, falls openssl installiert ist, automatisch gegen die entsprechenden libs gelinkt. ich hab auch schon probiert, die libs manuell zu verlinken, leider ebenfalls ohne erfolg.

hat von euch jemand schon erfahrung damit gesammelt und kann mir helfen?

verwende gcc (mingw), windows xp, qt 4.4.1, openssl 0.9.8h.

vielen dank!
peter

Verfasst: 7. September 2008 15:43
von Christian81
Wird Qt nun mit openssl gebaut oder nicht? Siehe Ausgabe von configure.exe

Verfasst: 7. September 2008 15:52
von ptr
ja, konfiguriert habe ich qt folgendermaßen: configure -openssl (ich denke das wäre auch der defaultwert)
gebaut wurden die ssl klassen dann auch (laut compiler output). nur in laufzeit liefert eben QSslSocket::supportsSsl false zurück, der ssl handshake funktioniert natürlich auch nicht.

Verfasst: 7. September 2008 16:20
von Christian81
Dann werden wohl die OpenSSL-Libs nicht gefunden. Wenn du OpenSSL mit dem Installer installiert hast sollten sie im system32-Vezeichnis liegen und auch korrekt gefunden werden.

Verfasst: 7. September 2008 16:40
von ptr
naja, ich hab das gesamte openssl/lib verzeichnis ins mingw/lib verzeichnis kopiert (wie beschrieben in der hilfe), genauso mit den headern. sie müssten eigentlich schon gefunden werden.
würden sie nicht gefunden, müsste ja eigentlich der linker einen fehler bringen (undefined reference)?

Verfasst: 7. September 2008 16:46
von Christian81
Es geht nicht um irgendwelche Libs sondern um die DLLs. Nimm den Installer und schau ob die beiden openssl-Libs in system32 liegen.
Da sie erst zur Laufzeit geladen werden gibt es keine Linkerfehler.

Verfasst: 7. September 2008 17:04
von ptr
die dlls liegen im openssl/bin verzeichnis, und das habe ich zur path variable hinzugefügt.

Verfasst: 7. September 2008 18:17
von Christian81
Wenn dem wirklich so ist, sollte openssl support auch aktiv sein.

Verfasst: 8. September 2008 07:50
von macman
Wenn es trotzdem noch nicht geht, dann einfach mal processmon bemühen. Damit lassen sich alle DLLs anzeigen, die vom Programm heran gezogen werden. Z.B. benötigen die SSL-DLLs weitere DLLs, die vielleicht nicht im Systemordner liegen. Die von mir genutzten SLL-DLLs benötigen z.B. noch msvcr71.dll.