Ошибка Cygwin Perl не может загрузить expat.dll

c:\>perl -de 1

Loading DB routines from perl5db.pl version 1.32
Editor support available.

Enter h or `h h' for help, or `man perldebug' for more help.

main::(-e:1):   1
  DB<1> require XML::Parser::Expat
Can't load '/usr/lib/perl5/vendor_perl/5.10/i686-cygwin/auto/XML/Parser/Expat/Expat.dll' for module XML::Parser::Expat: No such file or directory at /usr/lib
/perl5/5.10/i686-cygwin/DynaLoader.pm line 200.
 at (eval 5)[/usr/lib/perl5/5.10/perl5db.pl:638] line 2
Compilation failed in require at (eval 5)[/usr/lib/perl5/5.10/perl5db.pl:638] line 2.

  DB<2> q

c:\>

Кто-нибудь сталкивался с этим раньше? Как это исправить? Мой Cygwin находится в C:\cygwin

нет каталога C:\cygwin\usr\lib но есть C:\cygwin\lib, когда я открою bash и попытаться cd /usr/lib это удается (на удивление) и после ls кажется, содержимое совпадает с каталогом C:\cygwin\lib,

Тем не менее, каталог C:\cygwin\lib\perl5\vendor_perl\5.10\i686-cygwin\auto\XML\Parser\Expat содержит файл с именем Expat.dll,

Кажется, что Cygwin говорит, что не может найти этот файл, но как его найти? /usr/lib/perl5/5.10/i686-cygwin/DynaLoader.pm?

Я пытался делать chmod +x но это не исправит

Любая помощь?

дела perl -MXML::Parser::Expat -e1 в командной строке возвращает:

c:\dev\trunk\src>perl -MXML::Parser::Expat -e1
Can't load '/usr/lib/perl5/vendor_perl/5.10/i686-cygwin/auto/XML/Parser/Expat/Expat.dll' for module XML::Parser::Expat: No such file or directory at /usr/lib
/perl5/5.10/i686-cygwin/DynaLoader.pm line 200.
 at -e line 0
Compilation failed in require.
BEGIN failed--compilation aborted.

РЕДАКТИРОВАТЬ: Кроме того, когда я делаю то же самое в среде Cygwin Bash (не в CMD напрямую), нет ошибки!

1 ответ

Решение

Если сначала зайти в оболочку Cygwin Bash, а затем сделать все, что я хочу, эта ошибка не выдается. Поэтому я бы предложил переместить все ваши команды perl вашего сценария bat в сценарий оболочки и вызвать его с bash,

Другие вопросы по тегам