加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2020-12-15 04:11:16 所属栏目:大数据 来源:网络整理
导读:如何静态链接Indy OpenSLL文件? AFAIK只有ICS才允许这样做,但出于某种奇怪的原因,Indy没有.它也不提供.obj文件?这将允许我避免任何依赖于dll的. 解决方法 OpenSSL主要用于动态使用.这样可以在发布新的OpenSSL版本时轻松升级.但是,OpenSSL也可以静态编译,In
如何静态链接Indy OpenSLL文件? AFAIK只有ICS才允许这样做,但出于某种奇怪的原因,Indy没有.它也不提供.obj文件?这将允许我避免任何依赖于dll的.

解决方法

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

>为目标平台编译/获取OpenSSL的静态.lib / .a文件(iOS的静态.a文件在Indy的Fulgan mirror中提供).
>更新Indy的IdCompilerDefines.inc文件,为目标平台定义USE_OPENSSL和STATICLOAD_OPENSSL.
>将IdSSLOpenSSLHeaders和IdSSLOpenSSLHeaders_static单位添加到uses子句中.
>确保IdSSLOpenSSLHeaders_static.pas为您的目标平台编译(它目前是为iOS设计的,因此您可能需要对其进行调整).

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读