1

问题:

我似乎无法正确安装 perl 模块,尤其是 JSON-2.53。

我做了以下事情:

  • 搜索了一个类似的问题并尝试了它的解决方案 - 没有奏效。
  • perl ".../config.h, `Makefile' 需要" 在 OSX Lion 升级后不起作用
  • 安装了 XCode 命令行开发工具(c 编译器、make 等)
  • 阅读有关此特定 perl 模块的版本兼容性文档:http: //metacpan.org/pod/JSON
  • 运行以下命令来制作和安装所需的 perl 模块:

    $perl Makefile.PL

    欢迎使用 JSON (v.2.53)

    如果您安装 JSON::XS v.2.27,它会使 JSON 更快。

    ****************************** 注意 ************************* ***

    • 这是“JSON 版本 2”,有很多不同 *
    • 到版本 1.xx *
    • 请检查您使用旧版本的应用程序。*
    • 请参阅“旧版本的不兼容更改”和“提示”*

    为 JSON 编写 Makefile

(验证Makefile已经写好了)

$make
make: *** No rule to make target `/System/Library/Perl/5.12/darwin-thread-multi-2level/CORE/config.h', needed by `Makefile'.  Stop.

这个错误甚至意味着什么?我该怎么做才能成功完成make install这个模块?

以下是一些可以帮助您调试此问题的附加项目:

$which make
/Applications/Xcode.app/Contents/Developer/usr/bin/make
$which perl
/usr/bin/perl
$perl -v
This is perl 5, version 12, subversion 3 (v5.12.3) built for darwin-thread-multi-2level
4

2 回答 2

1

我认为您需要下载并重新安装 XCode。如果我没记错 10.7,从应用商店下载 Xcode 后,它会将安装程序放入您的应用程序文件夹中。您需要运行它并尝试再次安装命令行工具(从 Xcode 的首选项窗格中)。我知道您提到您已经这样做了,但是更多的背景知识可能会解释为什么值得再次尝试。

以下是我 Mac 的 Makefile 中的相关行:

PERL_INC = /System/Library/Perl/5.12/darwin-thread-multi-2level/CORE
# Where is the Config information that we are using/depend on
CONFIGDEP = $(PERL_ARCHLIB)$(DFSEP)Config.pm $(PERL_INC)$(DFSEP)config.h

稍后在 Makefile 中,CONFIGDEP 被用作目标中的依赖项。我相信在您的情况下,make 正在寻找 /System/Library/Perl/5.12/darwin-thread-multi-2level/CORE/config.h 并且找不到它。您看到的错误是 make 说文件未找到的钝方法。

config.h 包含有关操作系统的特定信息,但运行脚本不需要。仅当您要编译模块时才引用它。使用股票 OSX,您可以获得足够的 perl 来执行脚本。安装 XCode,你就会得到一些东西(比如 config.h)来做 perl “开发”。我使用引号是因为您可以在没有 Xcode 的情况下编写和运行 perl 脚本。但正如您所发现的,编译模块需要 Xcode 提供的附加文件。(顺便说一下,R​​edHat 做同样的事情。你必须安装 perl-devel 包来获取 config.h。perl 运行时在一个单独的包中。)

以下是您可以尝试的一些事情:

  1. 验证 /System/Library/Perl/5.12/darwin-thread-multi-2level/CORE/config.h 是否存在。如果没有,Xcode 命令行实用程序没有正确安装。再试一次。
  2. 如果 config.h 存在,请检查其内容并确保它看起来正常。它是一个 C 头文件,由注释和#define 语句组成。
  3. 如果您无权查看 config.h,则说明存在权限问题。尝试sudo make用作旁路。磁盘实用程序(在应用程序 -> 实用程序中找到)可能能够永久修复此问题。
  4. 您可能会冒险从 CONFIGDEP 中删除“$(PERL_INC)$(DFSEP)config.h”来更改 Makefile。我在我的 10.8 Mac 上做了这个,它没有问题(它也通过了所有测试)。但是,如果您没有找到 config.h 问题的根本原因,那么下次您想要安装 perl 模块时,您可能会发现自己又回到了开始的位置。
于 2013-03-07T03:34:48.357 回答
0

我有这个完全相同的错误,虽然这可能不是你的解决方案....在重新安装与 OSX 版本兼容的更新 xcode 后(安装后重新启动)我仍然有错误 - 长话短说我注意到错误发生后 /CORE/ 中没有 config.h .....解决方法是先触摸 config.h 并创建文件,然后重新运行 make。希望这可以帮助某人。

于 2015-05-23T19:20:40.440 回答