2012-10-03 17 views
6

JSON :: XS स्थापित कर रहा है मुझे आशा है कि आप सभी मेरी हताशा के माध्यम से एक लंबे साहसिक के लिए तैयार हैं:पर मैक OSX

मैं Perl 5.10 उपयोग कर रहा हूँ, पर मैक OSX।

जो मैं करने की कोशिश कर रहा हूं वह प्रोग्राम में 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 का उपयोग कर पहले 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. 

मैं इस को देखने के ऑनलाइन, और यद्यपि मैं समझता हूँ कि ऐसा क्यों कहते हैं कि वह क्या करता है, मैं कोई रास्ता नहीं है कि मैं इसे ठीक कर सकता, क्योंकि ये मिल Makefiles हैं सीपीए या अन्य जगहों से।

एक और अनुभाग:

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 

मैं एक तथ्य यह है कि मैं एक सी संकलक है, के बाद से जीसीसी -v मुझसे कहता है यह संस्करण 4.2.1 है कि के लिए पता है। प्लस तरफ, यह मुझे बताता है कि मेरी किट अच्छी लगती है (जो कुछ भी है)। अगर मैं आदेश चलाने की कोशिश करता हूं तो वे मुझे सलाह देते हैं, मुझे बताया गया है कि ऐसी कोई फ़ाइल या निर्देशिका नहीं है।

कुछ और गुगलिंग के बाद, मैं मैक उपयोगकर्ताओं के लिए एक्सकोड पुनः संदर्भित देख रहा हूं। मेरे पास पहले से एक्सकोड का संस्करण था, लेकिन क्योंकि इसमें समस्याएं हो सकती हैं, मैं इसे अनइंस्टॉल करता हूं, फिर संस्करण 3.2.6 प्राप्त करें (मेरा ओएस नए संस्करणों के लिए बहुत पुराना है)। इंस्टॉलेशन अज्ञात कारणों से विफल रहता है, और यह मुझे सॉफ़्टवेयर कंपनी से संपर्क करने के लिए कहता है। हालांकि, इससे पहले कि यह विफल हो जाए, यह यूनिक्स उपकरण इंस्टॉल करता है, जिसमें जीसीसी (जिसे बाद में मुझे नवीनतम संस्करण मिला), इसलिए मुझे नहीं लगता कि यह समस्या है।

सब कुछ, इसने मेरे समय के लगभग 6 घंटे का उपभोग किया है, और मैं तनावग्रस्त और शारीरिक रूप से बीमार हूं (हालांकि मैं इस व्यर्थ उद्यम को शुरू करने से पहले आज सुबह था, लेकिन यह तेज हो गया है), और मुझे नहीं पता जहां मुझे आगे जाना है।

मुझे उम्मीद है कि यह सब कुछ बेवकूफ त्रुटि है जिसे किसी अनुभवी उपयोगकर्ता द्वारा 10 सेकंड में उपचार किया जाएगा, लेकिन मुझे सबसे बुरा डर है। आम तौर पर मैंने सूरज देवताओं को बकरियों को त्यागने के लिए - सुडो के साथ चलने से, मुझे मिली हर सलाह दी है। मैं किसी भी मदद की सराहना करता हूं।

+1

(''वाईएएमएल' स्थापित नहीं है, लगातार राज्य को स्टोर नहीं करेगा 'हानिरहित है।) – ikegami

+0

आपको' perl -MExtUtils :: CBuilder -E'say ExtUtils :: CBuilder-> new-> have_compiler || से क्या मिलता है। 0''? (कुछ फाइलें बना सकते हैं) – ikegami

+0

पर्ल्मोक्स थ्रेड से: मैंने चेक किया, और मेरे पास 'बीएसडी सबसिस्टम 'है। मैंने यह भी जांच की और पाया कि मेरे पास 'मेक' है और वह सीपीएन इसे पा सकता है। मैंने पिछले निर्माण को हटाने की भी कोशिश की। कुछ भी मदद नहीं की। – user1718471

उत्तर

5

आप सिस्टम के perl अकेले छोड़ने से सबसे अच्छे हैं। इसके बजाय, एस इंस्टॉल करने के लिए perlbrew का उपयोग करें।

आप cpan का उपयोग कर अपने स्थानीय perl के लिए

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

का उपयोग किए बिना cpanm स्थापित कर सकते हैं।

इसके अलावा, आपको command line tools for XCode इंस्टॉल करना पड़ सकता है।

आप नहीं कर सकते, तो आप MacPorts से उपकरणों का निर्माण स्थापित करने और प्रणाली रास्तों से आगे अपने रास्ते में उन डाल में देखना चाहते हो सकता है, लेकिन अपने स्थानीय perl क्योंकि आप करते हैं जरूरी नहीं कि गड़बड़ करने के लिए एक perl साथ चाहते हैं के बाद कि मैकपॉर्ट्स या तो स्थापित हो सकता है।

+3

+1 पर बड़ी कॉल दिखाई दिए। मुझे पहले उस समस्या का सामना करना पड़ा था और अगर यह यहां भी समस्या है तो मुझे आश्चर्य नहीं होगा। –

+0

@ SinanÜnür मैंने अनिवार्य रूप से उस समस्या को ट्रैक किया है जो एक कामकाजी सी कंपाइलर खोजने में असमर्थ है। मेरे पास gcc-4.2.1 है, लेकिन किसी कारण से इसे/इसे उपयोग नहीं किया जा सकता है। जब मैं perlbrew का उपयोग करके स्थापित करने का प्रयास करता हूं, तो यह मुझे बताता है 'ld: पुस्तकालय -lcrt1.10.6.o' के लिए नहीं मिला है। मेरे कंप्यूटर को खोजकर, मुझे '/ डेवलपर/एसडीके/MacOSX10.6.sdk/usr/lib/'पर एक फ़ाइल crt1.10.6.o मिली। मुझे नहीं पता कि यह कंपाइलर को कैसे दिखाना है, क्योंकि मेरे पास मेकफ़ाइल तक कोई पहुंच नहीं है। – user1718471

+0

क्या आपने एक्सकोड के अपने संस्करण के लिए एक्सकोड कमांड लाइन टूल्स स्थापित किए हैं? –