2012-10-03 42 views
6

Tôi hy vọng bạn đã sẵn sàng cho một cuộc phiêu lưu dài qua sự thất vọng của tôi:Cài đặt JSON :: XS trên Mac OSX

Tôi đang sử dụng Perl 5.10, trên Mac OSX: Snow Leopard, với XCode 3.2.6.

Điều tôi đang cố gắng làm là sử dụng mô-đun JSON :: XS trong chương trình.

Đây là lần đầu tiên tôi làm điều gì đó với Perl, vì vậy tôi tìm kiếm một số chương trình ví dụ đơn giản và dùng thử chúng, và tất cả đều hoạt động. Sau đó, tôi đi sử dụng JSON :: XS. Tôi nhận được:

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. 

Tôi làm một số Googling và cần phải cài đặt nó. Ngoài ra trong Googling của tôi, tôi tìm thấy các khuyến nghị nặng để sử dụng cpanm. Vì vậy, tôi cố gắng cài đặt cpanm đầu tiên bằng cách sử dụng cpan (mà tôi đã có).

Tôi nhận được bản in rất dài, về cơ bản nói KHÔNG, KHÔNG OK, "cơ hội thành công bị hạn chế", và CẤP NHIỀU nhiều lần. Đó là quá dài để bao gồm toàn bộ, nhưng các bit tôi thấy thú vị là:

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 

Tôi nhìn vào cài đặt YAML, bởi vì các phần của sản lượng như trên (mà tôi đã nhiều lần) làm cho tôi nghĩ rằng đó là vấn đề. Về cơ bản nó cũng thất bại, và trong số các lý do khác nó đã cho tôi cảnh báo như trên.

Một phần của đầu ra nói:

make: *** No rule to make target `/System/Library/Perl/5.10.0/darwin-thread-multi-2level/CORE/config.h', needed by `Makefile'. Stop. 

tôi nhìn này lên mạng, và mặc dù tôi hiểu tại sao nó nói những gì nó làm, tôi thấy không có cách nào mà tôi có thể khắc phục điều này, vì đây là những Makefiles nhận từ cpan hoặc ở nơi khác.

Một phần:

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 

Trong rất nhiều chung của lỗi chưa biết. Tôi cũng gặp rắc rối bởi phần mà nó cho tôi biết:

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 

Tôi biết thực tế là tôi có trình biên dịch c, vì gcc -v cho tôi biết đó là phiên bản 4.2.1. Về phía cộng, nó cho tôi biết rằng bộ của tôi có vẻ tốt (bất kể đó là gì). Nếu tôi thử chạy lệnh họ đề nghị tôi, tôi được thông báo rằng không có tập tin hoặc thư mục như vậy.

Sau một số Googling khác, tôi tiếp tục thấy XCode được tham chiếu lại cho người dùng Mac. Tôi đã có một phiên bản của XCode, nhưng bởi vì nó có thể có vấn đề, tôi gỡ bỏ cài đặt nó, sau đó nhận được phiên bản 3.2.6 (hệ điều hành của tôi là quá cũ cho các phiên bản mới hơn). Cài đặt không thành công vì lý do không xác định và nó cho tôi biết liên hệ với công ty phần mềm. Tuy nhiên, trước khi nó không thành công, nó cài đặt các công cụ UNIX, bao gồm cả gcc (mà sau này tôi có phiên bản mới nhất), vì vậy tôi không nghĩ đó là vấn đề. Tất cả trong tất cả, điều này đã tiêu thụ một số 6 giờ thời gian của tôi ngày hôm nay, và tôi bị căng thẳng và thể chất (mặc dù tôi đã sáng nay trước khi bắt đầu liên doanh vô ích này, nhưng nó trở nên trầm trọng hơn), và tôi không có ý tưởng nơi tôi phải đi tiếp theo.

Tôi hy vọng rằng đó là một số lỗi ngu ngốc mà sẽ được khắc phục trong 10 giây bởi một người dùng có kinh nghiệm, nhưng tôi lo sợ điều tồi tệ nhất. Nói chung tôi đã thực hiện mọi lời khuyên mà tôi đã tìm thấy, từ việc chạy với --sudo để hy sinh một con dê đến các vị thần mặt trời. Tôi đánh giá cao sự giúp đỡ nào.

+1

(''YAML' chưa được cài đặt, sẽ không lưu trữ trạng thái liên tục' là vô hại.) – ikegami

+0

Bạn nhận được gì từ' perl -MExtUtils :: CBuilder -E'say ExtUtils :: CBuilder-> new-> have_compiler || 0''? (Có thể tạo một vài tập tin) – ikegami

+0

Từ chủ đề perlmonks: Tôi đã kiểm tra, và tôi có 'BSD Subsystem'. Tôi cũng kiểm tra và thấy rằng tôi có 'make' và cpan có thể tìm thấy nó. Tôi cũng đã thử xóa các bản dựng trước đó. Không có gì giúp được. – user1718471

Trả lời

5

Bạn chỉ nên rời khỏi hệ thống perl một mình. Thay vào đó, hãy sử dụng perlbrew để cài đặt perl s của riêng bạn.

Bạn có thể cài đặt cpanm mà không sử dụng cpan sử dụng

curl -L http://cpanmin.us | perl - App::cpanminus

cho địa phương perl của bạn.

Ngoài ra, bạn có thể phải cài đặt command line tools for XCode.

Nếu bạn không thể, bạn có thể muốn xem xét cài đặt công cụ xây dựng từ MacPorts và đặt các công cụ đó lên con đường của bạn trước đường dẫn hệ thống, nhưng sau địa chỉ perl của bạn bởi vì bạn không nhất thiết muốn gây rối với perl MacPorts có thể cài đặt.

+3

+1 để cài đặt các công cụ dòng lệnh. Tôi đã có vấn đề đó trước và tôi sẽ không ngạc nhiên nếu vấn đề của nó ở đây quá. –

+0

@ SinanÜnür Tôi đã theo dõi cơ bản vấn đề xuống hệ thống không có khả năng tìm kiếm một trình biên dịch c hoạt động. Tôi có gcc-4.2.1, nhưng vì một số lý do nó không thể tìm thấy nó/sử dụng nó. Khi tôi thử cài đặt bằng cách sử dụng perlbrew, nó cho tôi biết 'ld: library không tìm thấy cho -lcrt1.10.6.o'. Bằng cách tìm kiếm trên máy tính của tôi, tôi đã tìm thấy một tệp crt1.10.6.o tại '/ Developer/SDKs/MacOSX10.6.sdk/usr/lib /'. Tôi không biết làm thế nào để làm cho điều này có thể nhìn thấy trình biên dịch, vì tôi không có quyền truy cập vào makefile. – user1718471

+0

Bạn đã cài đặt công cụ dòng lệnh XCode cho phiên bản XCode chưa? –

Các vấn đề liên quan