2016-03-14 3 views
0

настоящее время я использую:Lazarus с помощью Indy + OpenSSL по результатам OS X в EIdOSSLCouldNotLoadSSLLibrary

  • OS X Yosemite 10.10.5
  • новейший Инди (10.6.2.0, скачать 2016 13 марта - Indy10_5346.zip)
  • Lazarus 1.4.4
  • новейший OpenSSL

OpenSSL более специфически:

  • OpenSSL-1.0.2g соответственно браги интерфейса CMD линии
  • помещен в /usr/local/Cellar/openssl/1.0.2/lib/
  • Lib файлы в каталоге выше, являются: libcrypto.10 .dylib, libcrypto.1.0.0.dylib, libcrypto.dylib, libcrypto.a, libssl.1.0.0.dylib, libssl.dylib, libssl.a

...

Я перехожу выше pah в Ind y используя idOpenSSLSetLibPath() befoe, используя Indy.

, но я получаю получаю ошибку: EIdOSSLCouldNotLoadSSLLibrary по адресу:

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

Комментарии

  • «GIdOpenSSLPath + SSLCLIB_DLL_name правильны (расширение файла установлено правильно Инди при использовании "HackLoadFileName" в «LoadLibrary»)

  • Indy пытается итерации/нагрузки ove г следующие имена: libcrypto, libcrypto.1.0.0, libcrypto.10, libcrypto.1.0.1, libcrypto.1.0.2

...

Боковой вопрос № 1:

  • почему самодельный корабль OpenSSL 1.0.2g в файле libcrypto.1.0.0.dylib - это максимально гр ompability?

...

Мысли о возможной причиной # 1:

Может все это быть проблемой Лазаря компилирует 32bit для OS X? И OpenSSL - 64bit?

ответ

0

Установка OpenSSL, как это в командной строке: заварить установить OpenSSL --universal

Это гарантировало библиотека работает как для 32 и 64-битных приложений.

Возможно, сначала вам необходимо удалить: brew uninstall openssl