2012-05-29 38 views
1
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:\cygwincygwin perl錯誤無法加載expat.dll

沒有目錄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),沒有錯誤!

+0

在Cygwin shell中嘗試'perl -MXML :: Parser :: Expat -e1'。另外,當你在'cmd.exe'命令行中說'perl'時,它是哪一個? – Lumi

+0

@Lumi:它是cygwin perl – prongs

回答

0

先進入cygwin bash shell然後做任何我想要的都不會給這個錯誤。 所以我建議將你腳本腳本的所有perl命令都移到一個shell腳本中,並用bash來調用它。