Lazarus 在 OS X 上使用 Indy + OpenSSL 导致 EIdOSSLCouldNotLoadSSLLibrary

Lazarus using Indy + OpenSSL on OS X results in EIdOSSLCouldNotLoadSSLLibrary

我目前正在使用:

OpenSSL 更具体地说:

...

我在使用 Indy 之前使用 idOpenSSLSetLibPath() 将上述 pah 传递给 Indy。

但我收到错误消息:EIdOSSLCouldNotLoadSSLLibrary 位于:

TIdSSLIOHandlerSocketOpenSSL.Init() -> TIdSSLContext.Create()
...
LoadOpenSSLLibrary() -> IdSSLOpenSSLHeaders.Load()
...
Load()
...
hIDCrypto := LoadSSLCryptoLibrary() -> Result := HModule(HackLoad(...))
...
Result := LoadLibrary(HackLoadFileName(ALibName,ALibVersions[I])); // always zero :(

评论

...

附带问题 #1:

...

关于可能原因 #1 的想法:

难道这一切都是 Lazarus 为 OS X 编译 32 位 的问题吗?而OpenSSL是64位

在命令行中像这样安装 openssl:brew install openssl --universal

这确保该库适用于 32 位和 64 位应用程序。

您可能需要先使用以下命令卸载:brew uninstall openssl