问题:
我似乎无法正确安装perl模块,特别是JSON-2.53。
我做了以下事情:
运行以下命令以制作和安装所需的perl模块:
$ perl Makefile.PL
如果安装JSON :: XS v.2.27,它会使JSON更快。
**************************小心******************** ******
为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
答案 0 :(得分:1)
我认为您需要下载并重新安装XCode。如果我没记错10.7,从应用程序商店下载Xcode后,它会将安装程序删除到您的Applications文件夹中。您需要运行它并尝试再次安装命令行工具(从Xcode的prefernces窗格)。我知道你提到你已经这样做了,但更多的背景可以解释为什么值得再试一次。
以下是我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并找不到它。你看到的错误是说找不到文件的愚蠢方式。
config.h包含有关操作系统的特定信息,但不需要运行脚本。它只在您要编译模块时引用。使用库存OSX,您可以获得足够的perl来执行脚本。安装XCode,你得到的位(如config.h)来做perl“开发”。我使用引号是因为你可以在没有Xcode的情况下编写和运行perl脚本。但正如您所发现的,编译模块需要Xcode提供的其他文件。 (顺便说一句,RedHat做同样的事情。你必须安装perl-devel包来获取config.h。perl运行时是在一个单独的包中。)
以下是您可以尝试的一些事项:
sudo make
作为旁路。 “磁盘工具”(位于“应用程序” - >“实用工具”中)可能能够永久修复此问题。答案 1 :(得分:0)
我有这个完全相同的错误,虽然这可能不是你的解决方案....重新安装与OSX版本兼容的更新的xcode(+安装后重新启动)我仍然有错误 - 削减了很长时间故事简短我注意到错误之后/ CORE /中没有config.h .....解决方法是触摸config.h并首先创建文件然后重新运行make。希望这有助于某人。