use*_*471 6 macos perl perl-module
我希望你已经准备好通过我的挫折进行长时间的冒险:
我在Mac OSX上使用Perl 5.10: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.
Run Code Online (Sandbox Code Playgroud)
我做一些谷歌搜索,并认为它需要安装.同样在我的谷歌搜索中,我发现使用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
Run Code Online (Sandbox Code Playgroud)
我考虑安装YAMl,因为像上面那样的输出部分(我反复得到)让我觉得这就是问题所在.基本上它也失败了,除了其他原因,它给了我像上面这样的警告.
输出的另一部分说:
make: *** No rule to make target `/System/Library/Perl/5.10.0/darwin-thread-multi-2level/CORE/config.h', needed by `Makefile'. Stop.
Run Code Online (Sandbox Code Playgroud)
我在网上看到这个,虽然我理解为什么它说它做了什么,但我认为我无法解决这个问题,因为这些是来自cpan或其他地方的Makefile.
另一部分:
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
Run Code Online (Sandbox Code Playgroud)
一般来说有很多未知的错误.它告诉我的部分我也很麻烦:
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
Run Code Online (Sandbox Code Playgroud)
我知道我有一个ac编译器,因为gcc -v告诉我它是版本4.2.1.从好的方面来说,它确实告诉我我的工具包看起来很好(不管是什么).如果我尝试运行他们推荐我的命令,我会被告知没有这样的文件或目录.
经过一番谷歌搜索,我不断看到XCode重新引用Mac用户.我已经有了一个版本的XCode,但由于它可能有问题,我将其卸载,然后获得版本3.2.6(我的操作系统对于较新版本来说太旧了).安装失败原因不明,它告诉我联系软件公司.但是,在它失败之前,它会安装UNIX工具,包括gcc(我后来得到了最新版本),所以我不认为这是问题所在.
总而言之,这已经消耗了我今天大约6个小时的时间,而且我有压力和身体不适(虽然我今天早上开始这个徒劳的冒险,但它已经加剧了),我不知道我应该在哪里下一步.
我希望有经验的用户在10秒钟内完成一些愚蠢的错误,但我担心最糟糕的情况.总的来说,我已经完成了我所发现的每一条建议,从用--sudo到牺牲山羊到太阳神.我很感激任何帮助.