2
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 ではなく) で同じことを行うと、エラーは発生しません!

4

1 に答える 1

1

最初にcygwin bashシェルに入ってから、やりたいことをしても、このエラーは発生しません。したがって、バット スクリプトのすべての perl コマンドをシェル スクリプトに移動し、bash.

于 2012-06-05T10:36:13.623 に答える