gpt4 book ai didi

delphi - 如何静态链接 Indy SSL 文件?

转载 作者:行者123 更新时间:2023-12-03 15:00:55 26 4
gpt4 key购买 nike

如何静态链接 Indy OpenSLL 文件?据我所知,只有 ICS 允许这样做,但由于某些奇怪的原因,Indy 不允许这样做。它也不提供 .obj 文件吗?这将使我能够避免对 dll 的任何依赖。

最佳答案

OpenSSL 主要是为了动态使用。这样可以在新的 OpenSSL 版本发布时轻松升级。不过,OpenSSL 也可以静态编译,Indy 10.6.0+ 确实支持静态链接到 OpenSSL,但目前仅支持 iOS 设备(因为 Apple 不允许动态链接 OpenSSL)。在所有其他平台(包括 iOS 模拟器)上,Indy 默认动态链接到 OpenSSL。如果您希望 Indy 在非 iOS 平台上静态链接到 OpenSSL,则必须手动设置:

  1. 为您的目标平台编译/获取 OpenSSL 的静态链接对象文件(即,Indy 的 OpenSSL-Binaries GitHub repo 提供了 iOS 的静态 .a 文件)。

  2. 更新 Indy 的 IdCompilerDefines.inc 文件,为您的目标平台定义 USE_OPENSSLSTATICLOAD_OPENSSL

  3. IdSSLOpenSSLHeadersIdSSLOpenSSLHeaders_static 单元添加到您的 uses 子句中。

  4. 确保 IdSSLOpenSSLHeaders_static.pas 针对您的目标平台进行编译(它目前是为 iOS 设计的,因此您可能需要对其进行调整)。

另一种方法是根本不使用 OpenSSL,而是使用另一个可以静态链接的 SSL/TLS 库,并由合适的 TIdSSLIOHandlerSocketBase 实现包装以供 Indy 使用。 EldoS SecureBlackbox例如,为其 SSL/TLS 库提供了这样的实现。 future ,Indy 计划在 Windows 上为 SChannel 添加新的 IOHandler 实现,这不需要分发 DLL,因为它们已经安装在操作系统中。

关于delphi - 如何静态链接 Indy SSL 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19695855/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com