Ошибка 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
,