OpenSSL | Linkowanie statyczne

OpenSSL można połączyć bezpośrednio z plikiem wykonywalnym aplikacji, zamiast ładować go w czasie działania z plików DLL libcrypto i libssl. Oznacza to, że aplikacja korzystająca z TLS nie musi wdrażać żadnej biblioteki DLL OpenSSL. Wszystko, czego potrzebuje, znajduje się już wewnątrz pliku .exe.

Jest to przydatne, gdy chcesz dystrybuować pojedynczy plik, gdy nie możesz zagwarantować, że na docelowym komputerze zainstalowana jest właściwa biblioteka DLL OpenSSL, lub gdy proces wdrażania nie pozwala na dodatkowe pliki obok pliku wykonywalnego.

Wymagania

Jak skonfigurować

Nie ma nic do skonfigurowania. Wystarczy dodać jednostkę sgcIdSSLOpenSSL_Static do klauzuli uses projektu, na przykład w głównym pliku .dpr:

uses

  sgcIdSSLOpenSSL_Static;

To wszystko. Nie ma żadnej dyrektywy kompilatora do włączenia ani wersji API OpenSSL do wyboru. Aplikacja zaczyna korzystać z biblioteki OpenSSL połączonej z plikiem wykonywalnym już przy następnym uruchomieniu, zarówno dla komponentów klienckich, jak i serwerowych. Jeśli usuniesz jednostkę z klauzuli uses, aplikacja wróci do ładowania bibliotek DLL OpenSSL dokładnie tak jak wcześniej.

Obecnie połączona wersja OpenSSL to 3.5.7. Wersja ta jest od czasu do czasu aktualizowana, aby uwzględnić najnowsze poprawki OpenSSL, dzięki czemu nie musisz samodzielnie śledzić ani wdrażać wersji OpenSSL.

Typowe błędy

E2045 Bad object file format

Oznacza to, że kompilujesz przy użyciu wersji Delphi starszej niż XE2. Linkowanie statyczne wymaga Delphi XE2 lub nowszego. Usuń jednostkę sgcIdSSLOpenSSL_Static z klauzuli uses, a aplikacja będzie nadal działać z bibliotekami DLL OpenSSL.