我希望您已经准备好了,跟随我的挫败感一起进行漫长的冒险:
我正在使用Perl 5.10,在Mac OSX:Snow Leopard上,使用XCode 3.2.6。
我想做的是在程序中使用JSON::XS模块。
这是我第一次使用Perl,所以我查找了一些简单的示例程序并尝试了它们,它们都可以工作。然后我尝试使用JSON::XS。结果出现了以下错误信息:
我知道我的电脑上有C编译器,因为gcc -v告诉我它是4.2.1版本。好的一面是,它告诉我我的工具包看起来不错(虽然我不知道那是什么)。如果我尝试运行推荐给我的命令,会发现没有这样的文件或目录。
经过更多的搜索,我发现Mac用户需要安装XCode。我已经安装了一个版本的XCode,但由于可能存在问题,我将其卸载,然后获取了3.2.6版本(我的操作系统太旧了不能安装更新版本)。安装失败了,原因未知,然后提示我联系软件公司。但是,在失败之前,它确实安装了UNIX工具,包括gcc(稍后我获取了最新版本),所以我认为这不是问题所在。
总之,这耗费了我今天大约6小时的时间,我很紧张,身体也不舒服(虽然我今天早上开始这个徒劳的尝试之前就已经不舒服了,但它变得更加严重了),我不知道下一步该怎么做。
我希望这一切只是一些愚蠢的错误,有经验的用户只需10秒钟即可纠正,但我担心最坏的情况。总的来说,我已经按照所有找到的建议去尝试了,从使用--sudo运行到向太阳神献祭。我会感激任何帮助。
我正在使用Perl 5.10,在Mac OSX:Snow Leopard上,使用XCode 3.2.6。
我想做的是在程序中使用JSON::XS模块。
这是我第一次使用Perl,所以我查找了一些简单的示例程序并尝试了它们,它们都可以工作。然后我尝试使用JSON::XS。结果出现了以下错误信息:
Can't locate JSON/XS.pm in @INC (@INC contains: /Library/Perl/Updates/5.10.0 /System/Library/Perl/5.10.0/darwin-thread-multi-2level /System/Library/Perl/5.10.0 /Library/Perl/5.10.0/darwin-thread-multi-2level /Library/Perl/5.10.0 /Network/Library/Perl/5.10.0/darwin-thread-multi-2level /Network/Library/Perl/5.10.0 /Network/Library/Perl /System/Library/Perl/Extras/5.10.0/darwin-thread-multi-2level /System/Library/Perl/Extras/5.10.0 .) at part1.pl line 5.
BEGIN failed--compilation aborted at part1.pl line 5.
我搜索了一些资料,发现需要进行安装。在我的搜索中,我发现强烈推荐使用cpanm。因此,我首先尝试使用已经安装的cpan来安装cpanm。
我得到了一个非常长的输出结果,基本上重复地说“不行,没有成功的机会”,并且一遍又一遍地显示“失败”。整个输出结果太长了,无法完全包含,但我觉得有趣的部分是:
Warning (usually harmless): 'YAML' not installed, will not store persistent state
Running make test
Can't test without successful make
Running make install
Make had returned bad status, install seems impossible
Could not read '/Users/danielgierl/.cpan/build/ExtUtils-ParseXS-3.15-VSmBrZ/META.yml'. Falling back to other methods to determine prerequisites
我查看了安装YAML的相关信息,因为像上面显示的部分(我一再得到)让我认为这可能是问题所在。实际上,它也失败了,并且在其他原因之间,给我了像上面那样的警告。
另一个输出部分如下:
make: *** No rule to make target `/System/Library/Perl/5.10.0/darwin-thread-multi-2level/CORE/config.h', needed by `Makefile'. Stop.
我在网上查找了这个问题,虽然我理解为什么会出现这种情况,但是我看不到任何解决方法,因为这些Makefile文件是从CPAN或其他地方获取的。
另一个部分:
Running install for module 'version'
Running make for J/JP/JPEACOCK/version-0.9901.tar.gz
Has already been unwrapped into directory /Users/danielgierl/.cpan/build/version-0.9901-U8IMPt
Could not make: Unknown error
Warning (usually harmless): 'YAML' not installed, will not store persistent state
Running make test
Can't test without successful make
Running make install
Make had returned bad status, install seems impossible
一般说来,有许多未知的错误。我也被其中告诉我的部分所困扰:
Testing if you have a C compiler
ld: library not found for -lbundle1.o
collect2: ld returned 1 exit status
lipo: can't open input file: /var/folders/1C/1CnzBuv+F5y+8M5YPm6I4k+++TI/-Tmp-//ccTWRqov.out (No such file or directory)
error building /var/folders/1C/1CnzBuv+F5y+8M5YPm6I4k+++TI/-Tmp-/compilet.bundle from /var/folders/1C/1CnzBuv+F5y+8M5YPm6I4k+++TI/-Tmp-/compilet.o at /System/Library/Perl/5.10.0/ExtUtils/CBuilder/Base.pm line 213.
I cannot determine if you have a C compiler
so I will install a perl-only implementation
You can force installation of the XS version with
perl Makefile.PL --xs
我知道我的电脑上有C编译器,因为gcc -v告诉我它是4.2.1版本。好的一面是,它告诉我我的工具包看起来不错(虽然我不知道那是什么)。如果我尝试运行推荐给我的命令,会发现没有这样的文件或目录。
经过更多的搜索,我发现Mac用户需要安装XCode。我已经安装了一个版本的XCode,但由于可能存在问题,我将其卸载,然后获取了3.2.6版本(我的操作系统太旧了不能安装更新版本)。安装失败了,原因未知,然后提示我联系软件公司。但是,在失败之前,它确实安装了UNIX工具,包括gcc(稍后我获取了最新版本),所以我认为这不是问题所在。
总之,这耗费了我今天大约6小时的时间,我很紧张,身体也不舒服(虽然我今天早上开始这个徒劳的尝试之前就已经不舒服了,但它变得更加严重了),我不知道下一步该怎么做。
我希望这一切只是一些愚蠢的错误,有经验的用户只需10秒钟即可纠正,但我担心最坏的情况。总的来说,我已经按照所有找到的建议去尝试了,从使用--sudo运行到向太阳神献祭。我会感激任何帮助。
perl -MExtUtils::CBuilder -E'say ExtUtils::CBuilder->new->have_compiler || 0'
得到什么?(可能会创建一些文件) - ikegamigcc-4.2
和env LD_RUN_PATH
的大量调用。 - user1718471