在 Cygwin 中安装 Perl 包 Term::ReadKey 时出错

Ben*_*Ben 5 cygwin perl git svn

我正在尝试通过 cygwin 使用 git

好吧,我使用这个命令将 svn 内容克隆到本地 git 存储库:

git svn clone svn://path/to/my/project --username myuser
Run Code Online (Sandbox Code Playgroud)

Git 回来了:

Authentication realm: <svn://path/to/my/project>
Password for 'myuser': Can't locate Term/ReadKey.pm in @INC (@INC contains: /usr/lib/perl
/site_perl/5.14 /usr/lib/perl5/site_perl/5.14/x86_64-cygwin-threads /usr/lib/perl5/vendor_perl
/5.14/x86_64-cygwin-threads /usr/lib/perl5/vendor_perl/5.14 /usr/lib/perl5/5.14/x86_64-cygwin-   
threads /usr/lib/perl5/5.14 .) at /usr/lib/perl5/vendor_perl/5.14/Git.pm line 565.
Run Code Online (Sandbox Code Playgroud)

谷歌说我应该使用 perl shell,这就是我所做的:

perl -MCPAN -e shell
Run Code Online (Sandbox Code Playgroud)

在 shell 启动后,我应该安装 Perl Term ReadKey 包:

install Term::ReadKey
Run Code Online (Sandbox Code Playgroud)

现在我的问题出现了,Term::ReadKey 包的安装失败并显示以下错误消息:

gcc -c   -DPERL_USE_SAFE_PUTENV -U__STRICT_ANSI__ -fno-strict-aliasing -pipe -fstack-protector 
-DUSEIMPORTLIB -O3   -DVERSION=\"2.32\" -DXS_VERSION=\"2.32\"  "-I/usr/lib/perl5/5.14/x86_64-  
cygwin-threads/CORE"   ReadKey.c
ReadKey.xs:3:20: fatal error: EXTERN.h: No such file or directory
#include "EXTERN.h"
                 ^
compilation terminated.
Makefile:327: recipe for target 'ReadKey.o' failed
make: *** [ReadKey.o] Error 1
JSTOWE/TermReadKey-2.32.tar.gz
/usr/bin/make -- NOT OK
Running make test
Can't test without successful make
Running make install
Make had returned bad status, install seems impossible
Failed during this command:
JSTOWE/TermReadKey-2.32.tar.gz               : make NO
Run Code Online (Sandbox Code Playgroud)

谷歌发现了这个问题,这与我的问题有关:gcc not find header file 尽管它的路径已包含在 -I 中, 但正确标记的答案没有帮助。我已经在 cygwin 中安装了所有 crypt 库,从一开始就安装了 cygwin-GCC 和 Make,但它仍然无法正常工作。

如果有人可以帮助我会很酷,谢谢。

编辑:

find / -iname "*EXTERN.h*"
Run Code Online (Sandbox Code Playgroud)

返回

/lib/perl5/5.14/x86_64-cygwin-threads/CORE/EXTERN.h
/usr/lib/perl5/5.14/x86_64-cygwin-threads/CORE/EXTERN.h
Run Code Online (Sandbox Code Playgroud)

Ben*_*Ben 6

所以解决方案是..... 从 cygwin 安装程序安装 TermReadKey Cygwin 包。这么简单的解决方案:)

感谢 atrigent 的这个想法!