如何在ActivePerl 5.8.7上安装Devel :: Cover?

时间:2010-08-04 17:40:38

标签: perl activeperl

cpan因这个奇怪的错误而失败,如下所示

Error: Unable to locate installed Perl libraries or Perl source code.

It is recommended that you install perl in a standard location before
building extensions. Some precompiled versions of perl do not contain
these header files, so you cannot build extensions. In such a case,
please build and install your perl from a fresh perl distribution. It
usually solves this kind of problem.

(You get this message, because MakeMaker could not find "D:\fbl_esc_bcd_tb\tools\perl\lib\CORE\perl.h")
Running make test
  Make had some problems, maybe interrupted? Won't test
Running make install
  Make had some problems, maybe interrupted? Won't install

问题是我无法在此环境中安装新的活动perl版本,而我想要覆盖的工具不能在此环境之外运行。

2 个答案:

答案 0 :(得分:3)

Active Perl不使用CPAN。如果您想使用CPAN,请使用Strawberry Perl。 Active Perl通过其ppm系统使用二进制分发。如果官方没有Devel::Cover,可以使用一些第三方回购 - 虽然官方可能有Devel :: Cover。

这些天大多数人都转向草莓而远离AS。在我看来,它更加稳定,对CPAN友好,而且肯定不那么专有。此外,期望能够获得大多数所有东西的稳定版本 - 众所周知,AS在官方回购的许多场合都会落后多年。 strawberry还带有自己的编译器和构建环境,因此您甚至可以轻松地使用::XS个版本。

答案 1 :(得分:3)

简短回答:ActiveState PPM repository有一个你应该能够安装的Devel :: Cover的预编译版本。

答案很长:这不是来自MakeMaker的正常消息所以我愿意猜测它的ActiveState添加,但它可能是真的。问题正是错误信息所说的;您的发行版缺少一些重要文件,特别是Perl的C头文件,因此无法编译Devel :: Cover等模块所需的C代码。这通常是由于过度热心的系统管理员或打包者希望节省几十K的磁盘空间。您可以 获取the header files from the 5.8.7 source,将它们复制到CORE目录中,可能工作。它不会让事情变得更糟。

我同意Evan的观点,假设这是一台Windows机器,你应该转而使用Strawberry Perl,它与Perl社区的其余部分相比,比ActivePerl更好。

否则,ActiveState是一家商业公司,他们已经支付了Perl支持。给他们一个戒指。