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.
(''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
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
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