Почему DynaLoader.pm не может загрузить SSleay.dll для Net :: SSLeay и Crypt :: SSLeay? - PullRequest
1 голос
/ 08 января 2009

У меня есть Perl v5.10. Я пытаюсь установить Net :: SSLeay 1.30 и Crypt :: SSLeay 0.57. Я уже установил OpenSSL 0.9.8e.

Для Net :: SSLeay 1.30 я выполнил следующие действия:

perl Makefile.PL -windows C:\openssl
nmake
nmake test  -- test fails
nmake install

perl test.pl

но я получил фатальную ошибку:

D:\perl\Net_SSLeay.pm-1.30>perl -w test.pl
1..20
Can't load 'D:/perl/site/lib/auto/Net/SSLeay/SSLeay.dll' for module Net::SSLeay: load_file:The specified module could not be found at D:/perl/lib/DynaLoader.pm line 203.
 at test.pl line 25
Compilation failed in require at test.pl line 25.
BEGIN failed--compilation aborted at test.pl line 25.

Я получил те же результаты для Crypt :: SSLeay 0.57.

Ответы [ 2 ]

3 голосов
/ 08 января 2009

У Рэнди Кобеса есть ответ на этот вопрос в списке рассылки Perl Win32 . Содержит ли переменная среды PATH каталог, содержащий libeay32.dll или ssleay32.dll?

Есть много других ответов, которые вы можете найти и в Google. В подобных случаях я беру сообщение об ошибке целиком и помещаю его в строку поиска Google. Я начинаю вырезать части сообщения об ошибке, например, конкретные пути, пока не получу некоторые результаты поиска . Это почти всегда работает для меня, так как я редко первый, у кого возникают проблемы.

Удачи,

0 голосов
/ 17 августа 2017

Совместно используемые библиотеки часто имеют внешние зависимости, и в некоторых операционных системах эти зависимости должны быть немедленно выполнены при загрузке первой разделяемой библиотеки, например, SSLeay.dll, которой обычно требуются две крипто-библиотеки. В linux вы можете проверить с помощью ldd поведение во время выполнения, если все библиотеки найдены.

Чтобы отладить это, добавьте env var PERL_DL_DEBUG = 5, например set PERL_DL_DEBUG=5, и попробуйте снова или используйте внешний инструмент depends.exe, чтобы увидеть, что именно DLL отсутствует.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...