2013-01-22 70 views
1

问题:使用make安装Perl模块时出错 - Mac OSX 10.7

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

我也做了以下内容:搜索

  • 了类似的问题,并试图及其解决方案 - 没有工作。
  • perl ".../config.h, needed by `Makefile'" not working after OSX Lion upgrade
  • 安装的XCode命令行显影剂工具(C编译器,使等)
  • 这个特定的perl模块上读取版本兼容性文档:http://metacpan.org/pod/JSON
  • 然下面的命令来实现和安装所需的perl的模块:

    $ perl的Makefile.PL

    欢迎JSON(v.2.53)

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

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

    • 这是 'JSON 2版',有许多不同之处*
    • 到版本1.XX *
    • 请检查您的应用程序期运用旧版本。 *
    • 看到 '不兼容的改变TO旧版本' 和 '提示' *

    写作的Makefile JSON

(验证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 
+0

这是否有帮助:http://stackoverflow.com/questions/6793499/perl-config-h-needed-by-makefile-problem-after-osx-lion-upgrade – trojanfoe

+0

我实际上在我的问题中引用了这个问题 - 我尝试了他所做的并且对我无效。 – Jiman

回答

1

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

这里是Makefile中的相关线路从我的Mac:

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提供的其他文件。 (顺便说一句,红帽做同样的事情,你必须安装软件包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模块时,您可能会发现自己回到了开始的位置。
+0

执行此命令: $ ls /System/Library/Perl/5.12/darwin-thread-multi-2level/CORE/ 输出: libperl.dylib perl.h - 我认为你说得对,我需要重新安装Xcode。安装过程中一定会有一些事情发生。我会在50分钟到期后给你奖金,我现在不能测试。我会让你知道它是怎么回事。 – Jiman

+0

您是否可以安装JSON模块? – che2cbs

+0

重新安装Xcode和命令行工具。我不知道为什么我以前的版本没有... – Jiman

0

我有这个完全相同的错误,虽然这可能不是一个解决方案为您....重新安装更新后的xcode兼容OSX版本(+重新启动后安装)我仍然有错误 - 简短地讲了一个很长的故事,我注意到在错误之后,在/ CORE /中没有config.h ..解决方案的工作是触摸config.h并首先创建文件,然后重新运行make。希望这可以帮助某人。