尝试安装YAML :: Syck - 此模块需要C编译器

时间:2011-04-14 17:48:00

标签: perl yaml cpan

我正在尝试安装YAML :: Syck模块(我实际上是在尝试安装Date :: Manip,这只是一个依赖项),但它失败并显示以下消息:

This module requires a C compiler at Makefile.PL line 38.

无论我尝试使用CPAN进行安装,还是尝试下载软件包并手动安装,都会发生这种情况。

我安装了gcc,在我的PATH上,我可以从我试图用来安装YAML :: Syck的同一个CYGWIN shell窗口访问它。

3 个答案:

答案 0 :(得分:8)

在寻找C编译器时,ExtUtils::MakeMakerModule::Build不一定在gcc中查找PATH,而是查询perl的C编译器配置已构建,并期望它也可用于构建Perl扩展。

在我的系统上,它会根据

cc中查找PATH
$ perl -MConfig -E'say $Config{cc}'
cc

答案 1 :(得分:3)

在编译模块方面,过去我遇到过麻烦,只需要与cygwin一起“正常工作”。您可能需要查看Strawberry Perl,这是一个Windows Perl发行版,它与编译XS模块所需的所有组件捆绑在一起。我没有亲自尝试使用它安装YAML::Syck,但我安装了许多其他XS模块而没有发生任何事故。

一旦安装并且在您的路径中(通常是自动),您应该能够从Windows命令提示符运行cpan来安装模块。

答案 2 :(得分:1)

维护者说话

更好的论坛是 cygwin邮件列表。在那里,你会发现一遍又一遍地问同样的问题,我们可以指出信息,以及 维护者在场。 答案的质量会好得多。 官方最新的perl公告是http://sourceware.org/ml/cygwin-announce/2012-07/msg00011.html

perl用于将最有用的CPAN和测试模块与核心perl捆绑在一起。 使用最新的5.14软件包,有用的模块被移动到单独的软件包 perl_vendor 。 不包括能够通过cpan编译模块的依赖项。 您至少需要 make gcc-4 。 有关特定于软件包的自述文件,请参阅 /usr/share/doc/Cygwin/perl.README

YAML :: Syck 被视为已损坏且未维护(* _why * left),请尝试使用更好的YAML包,例如 YAML YAML: :XS ,由发明者和YAML本身的作者( ingy )撰写。 Date :: Manip 不需要 YAML :: Syck cpan 喜欢拥有YAML模块,但更喜欢 YAML :: XS

你会发现你可以使用 cygwin perl 安装更多的软件包而不是 strawberry perl (= mingw)。