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版本,而我想要覆盖的工具不能在此环境之外运行。
答案 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支持。给他们一个戒指。