OpenSSL | Statisches Linking

OpenSSL kann direkt in die ausführbare Datei Ihrer Anwendung eingebunden werden, anstatt zur Laufzeit aus den DLL-Dateien libcrypto und libssl geladen zu werden. Das bedeutet, dass eine Anwendung, die TLS verwendet, keine OpenSSL-DLL bereitstellen muss, alles Erforderliche befindet sich bereits in der .exe.

Dies ist nützlich, wenn Sie eine einzelne Datei verteilen möchten, wenn Sie nicht garantieren können, dass auf dem Zielrechner die richtige OpenSSL-DLL installiert ist, oder wenn Ihr Bereitstellungsprozess keine zusätzlichen Dateien neben der ausführbaren Datei zulässt.

Anforderungen

Konfiguration

Es ist nichts einzurichten. Fügen Sie einfach die Unit sgcIdSSLOpenSSL_Static der uses-Klausel Ihres Projekts hinzu, zum Beispiel in der Haupt-.dpr-Datei:

uses

  sgcIdSSLOpenSSL_Static;

Das ist alles. Es gibt keine Compiler-Direktive zum Aktivieren und keine OpenSSL-API-Version zum Auswählen, Ihre Anwendung verwendet ab dem nächsten Start die in die ausführbare Datei eingebundene OpenSSL-Bibliothek, sowohl für Client- als auch für Server-Komponenten. Wenn Sie die Unit wieder aus der uses-Klausel entfernen, lädt Ihre Anwendung die OpenSSL-DLLs wieder genau wie zuvor.

Die aktuell eingebundene OpenSSL-Version ist 3.5.7. Diese Version wird von Zeit zu Zeit aktualisiert, um die neuesten OpenSSL-Fixes zu enthalten, sodass Sie OpenSSL-Versionen nicht selbst verfolgen oder bereitstellen müssen.

Häufige Fehler

E2045 Bad object file format

Dies bedeutet, dass Sie mit einer Delphi-Version älter als XE2 kompilieren. Statisches Linking erfordert Delphi XE2 oder neuer, entfernen Sie die Unit sgcIdSSLOpenSSL_Static aus der uses-Klausel, und Ihre Anwendung funktioniert weiterhin mit den OpenSSL-DLLs.