2

cpan 失败并出现以下奇怪错误

错误:无法找到已安装的 Perl 库或 Perl 源代码。

建议您在安装 perl 之前将其安装在标准位置
建筑扩展。perl 的一些预编译版本不包含
这些头文件,因此您无法构建扩展。在这种情况下,
请从新的 perl 发行版构建和安装您的 perl。它
通常可以解决这类问题。

(您收到此消息,因为 MakeMaker 找不到“D:\fbl_esc_bcd_tb\tools\perl\lib\CORE\perl.h”)
运行 make 测试
  Make有一些问题,可能被打断了?不会测试
运行 make install
  Make有一些问题,可能被打断了?不会安装

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

4

2 回答 2

3

Active Perl 不使用 CPAN。如果你想使用 CPAN 使用Strawberry Perl。Active Perl 通过其 ppm 系统使用二进制分发。如果官方没有,则有一些第三方回购Devel::Cover——尽管官方可能有 Devel::Cover。

如今,大多数人都搬到了 Strawberry 并远离 AS。在我看来,它更加稳定且对 CPAN 更友好,而且肯定更少专有。此外,期望能够获得大多数东西的稳定版本 - 众所周知,AS 在官方 repos 中的许多情况下都会滞后数年。草莓还带有自己的编译器和构建环境,因此您甚至可以::XS轻松获得版本。

于 2010-08-04T17:45:55.793 回答
3

简短回答:ActiveState PPM 存储库有一个预编译版本的 Devel::Cover,您应该可以安装。

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

我同意 Evan 的观点,假设这是一台 Windows 机器,你应该切换到 Strawberry Perl,它在 Perl 社区的其他成员中比 ActivePerl 更好。

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

于 2010-08-04T18:00:26.903 回答