安裝JSON :: XS我希望你們都準備好了很長的冒險通過我的無奈:在Mac OSX
我使用Perl 5.10,在Mac OSX:雪豹,用了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版本。另一方面,它確實告訴我,我的套件看起來不錯(不管那是什麼)。如果我嘗試運行他們推薦的命令,我會被告知沒有這樣的文件或目錄。
經過一些Google搜索之後,我一直看到Mac用戶重新引用了XCode。我已經有了一個XCode版本,但因爲它可能有問題,所以我卸載它,然後得到版本3.2.6(我的操作系統對於新版本來說太舊了)。由於未知原因,安裝失敗,它告訴我與軟件公司聯繫。但是,在它失敗之前,它會安裝UNIX工具,包括gcc(我後來得到了最新版本),所以我認爲這不是問題所在。總之,這已經消耗了我今天6個小時的時間,而且我的壓力和身體不適(雖然我在今天上午纔開始這個徒勞無益的冒險,但它已經加劇了),我不知道我應該去哪裏。
我希望這是一個愚蠢的錯誤,將在10秒內由有經驗的用戶糾正,但我擔心最糟糕的。一般來說,我已經完成了我所發現的每一點建議,從用跑步的方式 - 犧牲一隻山羊到太陽神。我會很感激任何幫助。
(''YAML'沒有安裝,不會存儲持久狀態'是無害的。) – ikegami
你從'perl -MExtUtils :: CBuilder -E'say ExtUtils :: CBuilder-> new-> have_compiler || 0''? (可能創建幾個文件) – ikegami
從perlmonks線程:我檢查了,我確實有'BSD子系統'。我也檢查了一下,發現我確實有'make',那個cpan可以找到它。我也嘗試刪除以前的版本。沒什麼幫助。 – user1718471