我正在尝试安装YAML::Syck模块(实际上我正在尝试安装Date::Manip,这只是一个依赖项),但它失败了,并显示以下消息:
This module requires a C compiler at Makefile.PL line 38.无论我是尝试使用CPAN进行安装,还是尝试下载软件包并手动安装,都会发生这种情况。
我已经安装了gcc,在我的路径上,我可以从我试图用来安装YAML::Syck的同一个CYGWIN shell窗口访问它。
发布于 2011-04-15 02:31:27
在寻找C编译器时,ExtUtils::MakeMaker和Module::Build不一定要在您的Perl中查找gcc,而是查询您的PATH的配置,以获得构建它所用的C编译器,并期望它也可用于构建Perl扩展。
在我的系统上,它将在PATH中查找cc,如下所示
$ perl -MConfig -E'say $Config{cc}'
cc发布于 2011-04-15 02:00:32
当涉及到编译模块时,我曾经遇到过使用cygwin让所有东西都“正常工作”的问题。您可能想看看Strawberry Perl,它是一个Windows Perl发行版,捆绑了编译XS模块所需的所有组件。我没有亲自尝试用它安装YAML::Syck,但我已经安装了许多其他XS模块,没有发生任何问题。
一旦它被安装并且在您的路径中(通常是自动的),您应该能够从Windows命令提示符运行cpan来安装该模块。
发布于 2013-04-03 22:14:14
我是维护者
更好的论坛是cygwin邮件列表。在那里,你会发现同样的问题一次又一次地被问到,我们可以指出消息,维护者也在场。答案的质量会好得多。最新的perl官方声明是http://sourceware.org/ml/cygwin-announce/2012-07/msg00011.html。
perl用于将CPAN和测试中最有用的模块与核心perl捆绑在一起。在最新的5.14包中,有用的模块被移到单独的包perl_vendor中。不包括能够通过cpan自己编译模块的依赖项。您至少需要使用make和-4。有关特定于软件包的自述文件,请参见/usr/share/doc/Cygwin/perl.README。
Syck被认为是损坏和未维护的(*_why*左),请尝试使用更好的YAML包,如YAML或YAML::XS,由YAML本身的发明者和作者编写。Date::Manip不需要YAML::Syck。cpan确实希望有一个YAML模块,但更喜欢YAML::XS。
您将发现使用cygwin perl可以安装比使用strawberry perl (=mingw)多得多的包。
https://stackoverflow.com/questions/5667364
复制相似问题