रूबी जेम स्थापित जसन Mavericks और Xcode 5.1 पर विफल रहता है - अज्ञात तर्क: '-Multiply_definedppping'


105

मैं कोशिश कर रहा था मणि स्थापित json चलाने और निम्नलिखित त्रुटि मिली

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

    /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby extconf.rb 
creating Makefile

make "DESTDIR=" clean

make "DESTDIR="
compiling generator.c
linking shared-object json/ext/generator.bundle
clang: error: unknown argument: '-multiply_definedsuppress' [-Wunused-command-line-argument-hard-error-in-future]
clang: note: this will be a hard error (cannot be downgraded to a warning) in the future
make: *** [generator.bundle] Error 1

make failed, exit code 2

Gem files will remain installed in /opt/boxen/repo/.bundle/ruby/2.0.0/gems/json-1.8.0 for inspection.
Results logged to /opt/boxen/repo/.bundle/ruby/2.0.0/extensions/universal-darwin-13/2.0.0/json-1.8.0/gem_make.out

मैं उपयोग कर रहा हूँ:

Os X: 10.9.2
Xcode: 5.1 बिल्ड संस्करण 5B130a
कमांड लाइन टूल्स (CLT): 5.1.0.0.1.1393561416
रूबी: रूबी 2.0.0p247 (2013-06-27 संशोधन 41674) [Universal .x86_64-darwin13]
Ruby Gem: 2.2 .2
GCC: 4.2.1 Apple LLVM 5.1 संस्करण (clang-503.0.38) (LLVM 3.4s पर आधारित)


1
मैंने इस समस्या को हल करने के लिए बहुत सारी चीजें कीं और मुझे नहीं पता कि कौन सा हल किया गया था लेकिन मैंने नया रूबी संस्करण स्थापित किया, कमांड लाइन टूल्स के पिछले संस्करण (अक्टूबर के अंत में) को डाउनलोड किया और कमांड @Muncken के उत्तर को निष्पादित किया (ARCHFLAGS =) -वजन-त्रुटि = अप्रयुक्त-कमांड-लाइन-तर्क-हार्ड-एरर-इन-फ्यूचर {मूल कमांड})। इससे मेरी समस्या हल हो गई। अपने विशिष्ट मामले में मैं अपने वातावरण को स्थापित करने के लिए बॉक्सन का उपयोग कर रहा था, इसलिए मैंने जो अंतिम कमांड का उपयोग किया वह ARCHFLAGS = -नो-त्रुटि = अप्रयुक्त-कमांड-लाइन-तर्क-हार्ड-त्रुटि-इन-भविष्य / ऑप्ट / बॉक्सन / रेपो / स्क्रिप्ट / था boxen - कोई नहीं। सभी को धन्यवाद कि मदद की।
जी M एम

Mavericks 10.9.3 अपडेट रूबी टू: रूबी 2.0.0p451 (2014-02-24 संशोधन 45167) [Universal.x86_64-darwin13] यह समस्या को हल करने के लिए लगता है।
शाहर हदास

1
मुद्दा माणिक के पुराने संस्करण के साथ है जैसे @ सश कहते हैं। मैं 2.0.0p2 से मैन्युअल रूप से 2.0.0p2 के लिए अद्यतन किया गया था .. rvm का उपयोग कर: rvm रूबी-2.0.0-p451 स्थापित करें। rvm को इसे डिफ़ॉल्ट संस्करण के रूप में सेट करना चाहिए फिर आपको अपने रत्नों को फिर से स्थापित करने की आवश्यकता है
एडम स्पेंस

मैं rvm रूबी 2.2.0p0 (2014-12-25 संशोधन 49005) के साथ इस मुद्दे पर चल रहा हूँ
सोनी

जवाबों:


145

मैं एक ही समस्या का सामना कर रहा हूँ Xcode 5.1 को अद्यतन करने के बाद और Apple से समाचार अच्छे नहीं हैं। से Xcode 5.1 रिलीज नोट्स :

  • Xcode 5.1 में Apple LLVM कंपाइलर गैर-मान्यताप्राप्त कमांड-लाइन विकल्पों को त्रुटियों के रूप में मानता है। पायथन देशी एक्सटेंशन और रूबी जेम्स दोनों का निर्माण करते समय यह मुद्दा देखा गया है, जहां कुछ अमान्य कंपाइलर विकल्प वर्तमान में निर्दिष्ट हैं।

उन विकल्पों को हटाने के लिए अमान्य कंपाइलर विकल्पों का उपयोग करने वाली परियोजनाओं को बदलना होगा। उस संक्रमण को कम करने में मदद करने के लिए, संकलक अस्थायी रूप से चेतावनी को त्रुटि को कम करने के लिए एक विकल्प स्वीकार करेगा:

-Wno-error=unused-command-line-argument-hard-error-in-future

इस समस्या को हल करने के लिए, एक चेतावनी के लिए त्रुटि को कम करने के लिए ARCHFLAGS पर्यावरण चर सेट करें।

ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future gem install GemName

ऐसा लगता है कि संकलक विकल्पों का उल्लंघन करने वाले सभी रत्नों को वैध विकल्पों का उपयोग करने के लिए अद्यतन किया जाना चाहिए। यह स्पष्ट रूप से कहा गया है कि: यह विकल्प [चेतावनी के लिए त्रुटि को कम करना] भविष्य में समर्थित नहीं होगा

क्लैग नोट हम देख रहे हैं ( यह भविष्य में एक कठिन त्रुटि हो सकती है (किसी चेतावनी के लिए अपग्रेड नहीं किया जा सकता है) जारी नोटों में घोषित परिवर्तन से मेल खाती है।


विशेष रूप से अपने प्रश्न का उत्तर देने के लिए, json मणि स्थापित करने के लिए निम्नलिखित का उपयोग करें:

ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future gem install json

ध्यान दें, हालांकि, यह केवल एक अस्थायी सुधार है।


1
बहुत बहुत धन्यवाद, आपने मेरी बहुत मदद की है। Xcode CLI टूल 5.1 वर्जन के अपडेट के बाद से मुझे रेल्स 4 प्रोजेक्ट को बंडल करने की कोशिश करते समय त्रुटियों का एक लोड हो रहा था। हालांकि मुझे ARCHFLAGSदो बार पास करने की आवश्यकता थी : जब विशिष्ट भ्रष्ट रत्न स्थापित करना और बुंडलर चलाना।

खुशी है कि मैं राफेल की मदद कर सका। मैंने अपना अधिकांश दिन उसी झंझट में बिताया है।
कास्पर मुनक

मैंने बहुत सी चीजें इस समस्या को हल करने की कोशिश कीं और मुझे नहीं पता कि कौन सा हल किया गया था लेकिन मैंने नया रूबी संस्करण स्थापित किया, कमांड लाइन टूल्स के पिछले संस्करण को डाउनलोड किया (अक्टूबर के अंत में) और इस उत्तर पर कमांड को निष्पादित किया। इससे मेरी समस्याएं हल हो गईं। मेरे मामले में मैं अपने वातावरण को स्थापित करने के लिए बक्से का उपयोग कर रहा था, इसलिए मेरे द्वारा उपयोग की जाने वाली अंतिम कमांड ARCHFLAGS = -नो-त्रुटि = अप्रयुक्त-कमांड-लाइन-तर्क-हार्ड-त्रुटि-इन-भविष्य / ऑप्ट / बॉक्सन / रेपो / स्क्रिप्ट / बॉक्सन --no-FDE। सभी की मदद करने के लिए धन्यवाद
g8M

2
मैं यह समाधान मेरे लिए काम नहीं कर सकता। अभी भी clang: error: unknown argument: '-multiply_definedsuppress' [-Wunused-command-line-argument-hard-error-in-future]किसी भी विचारों के साथ विफल रहता है ?
राउबर्डनियल

1
आप स्पष्ट रूप से निर्यात करने का प्रयास कर सकते हैं export ARCHFLAGS="...", फिर अपनी संकलित कमांड को एक नई लाइन में चला सकते हैं, जैसे कि gem install json(मैं खुद पायथन मॉड्यूल का संकलन कर रहा हूं)। वैसे लाइन में पहले से मौजूद आर्चफ्लैग को जोड़ना न भूलें, वरना वे ओवरराइट हो जाएंगे।
मिकिएल कौव-ए-त्ज़ो

107

इसे ठीक करने के लिए वन-लाइनर

curl https://gist.githubusercontent.com/Paulche/9713531/raw/1e57fbb440d36ca5607d1739cc6151f373b234b6/gistfile1.txt | sudo patch /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/universal-darwin13/rbconfig.rb

काम नहीं किया। आदेश को विफल कर दिया और विफल हो गए:patching file /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/universal-darwin15/rbconfig.rb Hunk #1 FAILED at 82. Hunk #2 FAILED at 125. 2 out of 2 hunks FAILED -- saving rejects to file /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/universal-darwin15/rbconfig.rb.rej
एलिजा मुर्रे

19

समस्या को हल करने के लिए आप @Sash द्वारा वर्णित माणिक के सबसे हाल के संस्करण को स्थापित कर सकते हैं। ऐसा करने के लिए आप निम्न आदेशों का उपयोग कर सकते हैं। यदि आपने पहले ही आरवीएम स्थापित कर लिया है, तो आपको इसे पुनः स्थापित करने की आवश्यकता नहीं है।

#Install rvm
\curl -sSL https://get.rvm.io | bash -s stable

#Install ruby version 2.0.0-p451
rvm install ruby-2.0.0-p451

#Print ruby version to verify that it was installed successfully
ruby -v

#Install json gem
sudo gem install json

12

रूबी द्वारा पहले ही संबोधित किया गया मुद्दा:

https://bugs.ruby-lang.org/issues/9624

अब हमें बस Apple के लिए अपने रूबी संस्करण (2.0.0p247) को अपडेट करने के लिए इंतजार करना होगा, एक के बाद एक (2.0.0p451) जो अभी तक बाहर नहीं आए हैं ... (या काढ़ा / macport)

अद्यतन (2014-05-15): Mavericks 10.9.3 अपडेट माणिक को ruby 2.0.0p451 (2014-02-24 revision 45167) [universal.x86_64-darwin13] और यह समस्या को हल करने के लिए लगता है।


4

@ मंककेन ने पहले ही एक-एक करके मणि स्थापित करने का उत्तर दिया है:

ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future gem install GemName

मुनकेन के जवाब के आधार पर, मैंने कोशिश की है कि यह प्रयोग करते समय भी काम करे bundle install

ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future bundle install

क्या आप एक विवरण दे सकते हैं?
bjb568

जैसे @Mckcken ने कहा, लेकिन उन्होंने सिर्फ जवाब दिया gem install, मैंने कोशिश की कि bundle installकाम भी हो जाए
worldask

अन्य उत्तरों के संदर्भ के बिना भी आपका उत्तर पूर्ण होना चाहिए।
bjb568

हाँ। बहुत बेहतर और पूरा।
bjb568

यह ARCHFLAGS = -नो-एरर = अप्रयुक्त-कमांड-लाइन-तर्क-हार्ड-एरर-इन-फ्यूचर का उपयोग हर उस कमांड में किया जा सकता है जो क्लैंग के साथ विफल होता है: त्रुटि: अज्ञात तर्क: '-multiply_definedpppress'। दरअसल यह
क्लैंग

2

मेरे मामले में, मुझे वास्तव में इसी तरह की समस्या है, लेकिन सिस्टम माणिक पर नहीं, बल्कि OSX 10.8 से rvm द्वारा स्थापित माणिक पर, और OSX 10.9 में अपग्रेड करने के बाद इसके मुद्दे हैं।

एक सरल पुनर्स्थापना कार्य: rvm reinstall ruby-2.1.1


इस मुद्दे को ठीक करने के लिए सूरज के नीचे सब कुछ करने के बाद, यह मेरे लिए क्या किया है! धन्यवाद!
ट्रेज़पर्स W

1

OSX 10.10 पर, मेरे पास कई मुद्दे थे rails new firstappजैसे कि चल रहा है :

ERROR:  Error installing json:
ERROR: Failed to build gem native extension.
fatal error: 'ruby/config.h' file not found

मैंने इस विन्यास के साथ आरवीएम को अपडेट किया और सभी त्रुटियां दूर हो गई हैं! "

rvm get stable --auto-dotfiles

आप ऐप के नाम से बता सकते हैं कि मैंने बस रूबी ऑन रेल्स के साथ काम करना शुरू किया है, इसलिए उपरोक्त सलाह आपके लिए काम कर सकती है या नहीं।


1

पॉल चेचेटिन का वन-लाइनर अब काम नहीं करता (9/21/15)। हालाँकि, पीट के उत्तर में उल्लिखित पोस्ट के इस उत्तर ने मेरे लिए समस्या हल कर दी:

  • (ए) ऐप्पल के एक्सकोड स्थापित करें, फिर (बी) इसे लॉन्च करें और लाइसेंस की शर्तों को स्वीकार करें (मैंने (ए) किया था, लेकिन नहीं (बी)।)
  • sudo gem uninstall compass
  • sudo gem install compass

मैंने Xcode अपडेट किया था लेकिन इसे कभी लॉन्च नहीं किया था। जब मैंने इसे लॉन्च किया, तो इसने मुझे कुछ स्वीकार करने के लिए प्रेरित किया, फिर इसे "घटकों को स्थापित करना" पड़ा। उसके बाद, मैंने gem install jsonफिर से कोशिश की और यह काम कर गया!
सारा वेसल्स

1

इनमें से किसी ने भी मेरे लिए काम नहीं किया।

आखिरकार क्या काम किया एक sudo के साथ कमांड चल रहा है -

मणि स्थापित byebug -v '9.0.6'


-1

मैंने एक सरल समाधान का उपयोग किया ... काढ़ा के माध्यम से स्थापित करें

काढ़ा स्थापित नाम

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.