Ruby Gem kurulumu Json, Mavericks ve Xcode 5.1'de başarısız oluyor - bilinmeyen argüman: '-multiply_definedsuppress'


105

Gem install json çalıştırmaya çalışıyordum ve aşağıdaki hatayı aldım

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

Kullanıyorum:

Os X: 10.9.2
Xcode: 5.1 Derleme sürümü 5B130a
Komut Satırı Araçları (CLT): 5.1.0.0.1.1393561416
Ruby: ruby ​​2.0.0p247 (2013-06-27 revizyon 41674) [universal.x86_64-darwin13]
Ruby Gem: 2.2 .2
GCC: 4.2.1 Apple LLVM sürüm 5.1 (clang-503.0.38) (LLVM 3.4svn'ye göre)


1
Bu sorunu çözmeye çalışırken pek çok şey yaptım ve tam olarak hangisinin çözüldüğünü bilmiyorum ama yeni Ruby sürümünü yükledim, Komut Satırı Araçlarının önceki sürümünü indirdim (Ekim Sonu) ve @ Muncken'in cevabını (ARCHFLAGS = -Wno-error = kullanılmayan-komut satırı-bağımsız değişken-gelecekte-zor-hata {orijinal komut}). Bu benim sorunumu çözdü. Benim özel durumumda, ortamımı kurmak için boxen kullanıyordum, bu nedenle kullandığım son komut ARCHFLAGS = -Wno-error = unused-command-line-argument-hard-error-in-future / opt / boxen / repo / script / idi. boxen --no-fde. Yardımcı olan herkese teşekkürler.
g8M

Mavericks 10.9.3, Ruby'yi şu şekilde günceller: ruby ​​2.0.0p451 (2014-02-24 revizyon 45167) [universal.x86_64-darwin13] Bu, sorunu çözüyor gibi görünüyor.
Shahar Hadas

1
Sorun, @Sash'in dediği gibi Ruby'nin eski sürümüyle ilgili. 2.0.0p2'den 2.0.0p451'e manuel olarak güncellemem gerekiyordu .. rvm: rvm install ruby-2.0.0-p451 kullanarak. rvm bunu varsayılan sürüm olarak ayarlamalı, ardından mücevherlerinizi yeniden yüklemeniz gerekir
Adam Spence

Bu sorunu rvm ruby ​​2.2.0p0 (2014-12-25 revizyon 49005) ile yaşıyorum
Sonny Parlin

Yanıtlar:


145

Xcode'u 5.1'e güncelledikten sonra aynı sorunla karşılaşıyorum ve Apple'dan gelen haberler iyi değil. Gönderen Xcode 5.1 Sürüm Notları :

  • Xcode 5.1'deki Apple LLVM derleyicisi, tanınmayan komut satırı seçeneklerini hata olarak değerlendirir. Bu sorun, hem Python yerel uzantıları hem de şu anda bazı geçersiz derleyici seçeneklerinin belirtildiği Ruby Gems oluştururken görülmüştür.

Geçersiz derleyici seçenekleri kullanan projelerin, bu seçenekleri kaldırmak için değiştirilmesi gerekecektir. Bu geçişi kolaylaştırmaya yardımcı olmak için derleyici, hatayı bir uyarıya düşürme seçeneğini geçici olarak kabul edecektir:

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

Bu sorunu çözmek için, ARCHFLAGS ortam değişkenini hatayı bir uyarıya indirgeyecek şekilde ayarlayın.

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

Derleyici seçeneklerini ihlal eden tüm cevherlerin geçerli seçenekleri kullanmak için güncellenmesi gerektiği anlaşılıyor. Açıkça belirtilmiştir: Bu seçenek [hata uyarısına düşürme] gelecekte desteklenmeyecektir .

Gördüğümüz clang notu ( bu gelecekte zor bir hata olacaktır (bir uyarıya indirgenemez) ) sürüm notlarında açıklanan değişikliğe karşılık gelir.


Sorunuzu özel olarak yanıtlamak için, json gem'i yüklemek için aşağıdakileri kullanın:

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

Ancak, bunun yalnızca geçici bir düzeltme olduğunu unutmayın.


1
Çok teşekkür ederim, bana çok yardımcı oldun. Xcode CLI araçları 5.1 sürümüne yapılan güncellemeden bu yana, bir Rails 4 projesini bir araya getirmeye çalışırken çok fazla hata alıyordum. Yine de ARCHFLAGSiki kez geçmem gerekiyordu : belirli bozuk taşları kurarken ve Bundler'ı çalıştırırken.

Rafael'e yardım edebildiğime sevindim. Günümün çoğunu aynı karmaşa içinde geçirdim.
Kasper Munck

Bu sorunu çözmeye çalışırken pek çok şey yaptım ve tam olarak hangisinin çözüldüğünü bilmiyorum ama yeni ruby ​​sürümünü yükledim, Komut Satırı Araçlarının önceki sürümünü (Ekim Sonu) indirdim ve bu yanıt üzerine komutu çalıştırdım. Bu sorunlarımı çözdü. Benim durumumda ortamımı kurmak için kutuları kullanıyordum, bu nedenle kullandığım son komut ARCHFLAGS = -Wno-error = unused-command-line-argument-hard-error-in-future / opt / boxen / repo / script / boxen idi - no-fde.
Yardımcı

2
Bu çözümün benim için çalışmasını sağlayamıyorum. Hala clang: error: unknown argument: '-multiply_definedsuppress' [-Wunused-command-line-argument-hard-error-in-future]herhangi bir fikirle başarısız mı?
rauberdaniel

1
Açıkça dışa aktarmayı deneyebilir export ARCHFLAGS="...", ardından derleme komutunuzu yeni bir satırda çalıştırabilirsiniz, örneğin gem install json(Python modüllerini kendim derliyorum). Bu arada, önceden var olan ark bayraklarını satıra eklemeyi unutmayın, aksi takdirde üzerine yazılır.
Michiel Kauw-A-Tjoe

107

Bunu düzeltmek için tek satırlık

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

İşe yaramadı. Komutu çalıştırdı ve başarısız oldu: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
Elijah Murray

19

Sorunu çözmek için @Sash tarafından açıklandığı gibi Ruby'nin en son sürümünü yükleyebilirsiniz. Bunu yapmak için aşağıdaki komutları kullanabilirsiniz. Zaten rvm kurduysanız, yeniden yüklemenize gerek yoktur.

#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

Ruby tarafından zaten ele alınan sorun:

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

şimdi sadece Apple'ın ruby ​​sürümünü (2.0.0p247) henüz çıkmamış olan en son sürümden (2.0.0p451) sonra güncellemesini beklememiz gerekiyor ... (veya brew / macport)

Güncelleme (2014-05-15): Mavericks 10.9.3, Ruby'yi güncelliyor ruby 2.0.0p451 (2014-02-24 revision 45167) [universal.x86_64-darwin13] Ve bu sorunu çözüyor gibi görünüyor.


4

@Muncken, gem'i tek tek yüklemek için zaten bir cevap verdi:

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

Muncken'in cevabına dayanarak, kullanırken de işe yaradığını denedim bundle install

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

Bir tanım verebilir misin?
bjb568

@Muncken'ın dediği gibi, ama o cevabı verdi gem install, ben bundle installde işe yarıyor
worldask

Cevabınız, diğer cevapların bağlamı olmasa bile kendi başına eksiksiz olmalıdır.
bjb568

Evet. Çok daha iyi ve eksiksiz.
bjb568

Bu ARCHFLAGS = -Wno-error = unused-command-line-argument-hard-error-in-future, clang: error: unknown argument: '-multiply_definedsuppress' ile başarısız olan her komutta kullanılabilir. Aslında bu, clang derleyicisine bu hatanın uyarı olarak ele alınması gerektiğini söyler
g8M

2

Benim durumumda, aslında benzer bir problemim var, ancak sistem rubyinde değil, OSX 10.8'den rvm tarafından yüklenen yakutlarda ve OSX 10.9'a yükselttikten sonra sorunları var.

Basit bir yeniden yükleme çalışır: rvm reinstall ruby-2.1.1


Bu sorunu çözmek için güneşin altındaki her şeyi denedikten sonra, benim için bunu yaptı! Teşekkür ederim!
Trespassers W

1

OSX 10.10'da, aşağıdaki rails new firstappgibi birkaç sorun yaşadım :

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

Bu konfigürasyonla rvm'yi güncelledim ve tüm hatalar gitti !:

rvm get stable --auto-dotfiles

Ruby on Rails ile uğraşmaya başladığımı uygulama adından anlayabilirsiniz, bu nedenle yukarıdaki tavsiye sizin için işe yarayabilir veya işe yaramayabilir.


1

Paul Chechetin'in tek çizgisi artık işe yaramıyor gibi görünüyor (9/21/15). Ancak bu yanıt Pete'in cevapta belirtilen mesaja benim için sorun çözüldü:

  • (a) Apple'ın XCode'unu kurun, ardından (b) başlatın ve lisans koşullarını kabul edin ((a) 'yı yaptım ama (b) yapmadım.)
  • sudo gem uninstall compass
  • sudo gem install compass

Xcode'u güncelledim ama hiç başlatmadım. Başlattığımda, bir şeyi kabul etmemi istedi, sonra "bileşenleri yüklemek" zorunda kaldı. Ondan sonra gem install jsontekrar denedim ve işe yaradı!
Sarah Vessels

1

Bunların hiçbiri benim için işe yaramadı.

Sonunda işe yarayan, komutu bir sudo ile çalıştırmak -

gem kurulumu byebug -v '9.0.6'


-1

Basit bir çözüm kullandım ... demleme yoluyla yükleyin

demlemek yükleme adı

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.