2014-05-02 10 views
13

Bir gem yüklemeye çalışıyorum ve kendim ve mücevher yazarı daha önce hiç görmedim bu hatayı alıyorum. Bunu nasıl düzeltirim?HATA: Gem yerel uzantısı (ruby extconf.rb) oluşturulamadı: Mac OSX

Davids-MacBook-Pro:web david$ sudo /usr/bin/gem install compass --pre 
Password: 
Building native extensions. This could take a while... 
ERROR: Error installing compass: 
ERROR: Failed to build gem native extension. 

/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby extconf.rb 
checking for ffi.h... no 
checking for ffi.h in /usr/local/include,/usr/include/ffi... yes 
checking for ffi_call() in -lffi... yes 
checking for ffi_prep_closure()... yes 
checking for ffi_raw_call()... no 
checking for rb_thread_blocking_region()... yes 
checking for rb_thread_call_with_gvl()... yes 
checking for rb_thread_call_without_gvl()... yes 
checking for ffi_prep_cif_var()... no 
creating extconf.h 
creating Makefile 

make "DESTDIR=" 
compiling AbstractMemory.c 
compiling ArrayType.c 
compiling Buffer.c 
compiling Call.c 
Call.c:303:5: warning: implicit declaration of function 'rb_thread_call_without_gvl' is invalid in C99 [-Wimplicit-function-declaration] 
rbffi_thread_blocking_region(call_blocking_function, data, (void *) -1, NULL); 
^ 
./Thread.h:78:39: note: expanded from macro 'rbffi_thread_blocking_region' 
# define rbffi_thread_blocking_region rb_thread_call_without_gvl 
           ^
1 warning generated. 
compiling ClosurePool.c 
compiling DataConverter.c 
DataConverter.c:43:1: warning: control may reach end of non-void function [-Wreturn-type] 
} 
^ 
1 warning generated. 
compiling DynamicLibrary.c 
compiling ffi.c 
compiling Function.c 
Function.c:479:33: warning: incompatible pointer types passing 'VALUE (void *)' to parameter of type 'void *(*)(void *)' [-Wincompatible-pointer-types] 
    rb_thread_call_with_gvl(callback_with_gvl, &cb); 
          ^~~~~~~~~~~~~~~~~ 
Function.c:102:46: note: passing argument to parameter 'func' here 
extern void *rb_thread_call_with_gvl(void *(*func)(void *), void *data1); 
             ^
Function.c:563:9: warning: implicit declaration of function 'rb_thread_call_without_gvl' is invalid in C99 [-Wimplicit-function-declaration] 
    rb_thread_call_without_gvl(async_cb_wait, &w, async_cb_stop, &w); 
    ^
Function.c:738:1: warning: control reaches end of non-void function [-Wreturn-type] 
} 
^ 
3 warnings generated. 
compiling FunctionInfo.c 
compiling LastError.c 
compiling LongDouble.c 
compiling MappedType.c 
compiling MemoryPointer.c 
compiling MethodHandle.c 
compiling Platform.c 
compiling Pointer.c 
compiling Struct.c 
compiling StructByReference.c 
compiling StructByValue.c 
compiling StructLayout.c 
compiling Thread.c 
compiling Type.c 
compiling Types.c 
compiling Variadic.c 
linking shared-object ffi_c.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: *** [ffi_c.bundle] Error 1 


Gem files will remain installed in /Library/Ruby/Gems/2.0.0/gems/ffi-1.9.3 for inspection. 
Results logged to /Library/Ruby/Gems/2.0.0/gems/ffi-1.9.3/ext/ffi_c/gem_make.out 
+1

Ruby'yi yüklemek yerine "demlemek" demek yerine "rvm" veya "rbenv" gibi bir şey kullanmayı deneyin. –

+1

benzer bir şey görünüyor? http://stackoverflow.com/questions/22352838/ruby-gem-install-json-fails-on-mavericks-and-xcode-5-1-unknown-argument-mul – Alex

cevap

13

bu deneyin: açıklaması için

ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future gem install <gemName> 

benim için işe yaramadı xcode-select --install kullanarak OSX-10.9.5 günü this answer

-1

Bu Apple LLVM hatasıdır. Şimdilik

şunları yapabilirsiniz:

export ARCHFLAGS="-Wno-error=unused-command-line-argument-hard-error-in-future" 

rağmen uyarı adı bu değil kalıcı bir çözüm gördüğünüz gibi.

Kaynak: Bu OSX Mavericks'te gerçekleşiyorsa bu https://langui.sh/2014/03/10/wunused-command-line-argument-hard-error-in-future-is-a-harsh-mistress/

+0

Bu yazıyı takip ettim ama yine de aynı 'clang: error: bilinmeyen argüman: '-multiply_definedsuppress' [-Wunused-command-line-argüman-hard-error-in-future] clang: not: Bu bir hataya (bir uyarıya indirilemez) gelecekteki make: *** [ffi_c.bundle] Hata 1 Mücevher dosyaları /Library/Ruby/Gems/2.0.0/gems/ffi-1.9.3'te inceleme için yüklenir. Sonuçlar: /Library/Ruby/Gems/2.0.0/gems/ffi-1.9.3/ext/ffi_c/gem_make.out Davids-MacBook-Pro: ~ david $ echo $ ARCHFLAGS -Wno-error = kullanılmıyor -command-line-argüman-hard-error-in-future'in fikirleri? –

+1

Kabul edilen cevap, bundan 9 gün sonra aynıdır. :( – dx7

17

, araçlar aşağıdaki çalıştırarak yüklenir komut satırını emin olun.

OSX'in daha eski sürümleri & XCode, XCode IDE'nin kendisinde Komut Satırı Araçları'nın kurulumunu gerçekleştirdi. OSX Mavericks'de komut satırı araçlarını düzeltmek için aşağıdaki komutları çalıştırmam gerekiyordu, böylece yerel uzantıları kullanarak rubygems'i kurabileyim.

$ sudo xcode-select --install 
$ xcode-select --print-path 
/Library/Developer/CommandLineTools 
+0

Ödül açıklamasını okudun mu? Yükleme komutu artık çalışmıyor http://imgur.com/yNM2RRC –

+0

Özür dilerim; son bağlantı üzerinden atlamış olmalıyım. Diğer görüntülere bakıyorum ve Eğer bir şey düşünürsem güncellenecektir .. – Chris

+2

Komut satırı araçlarını doğrudan Apple'ın web sitesinden indirebilirsiniz. Giriş yapınız ve birkaç girişiniz olmalıdır. https://developer.apple.com/downloads/index.action# – Cereal

0

bakın. Lisansı onaylamaya başladı ve daha sonra yazılımı bulamadığını bildirdi.

Ziyaret ettiğim nokta: https://developer.apple.com/downloads/index.action#, OSX-10.9.5 için uygun CommandLineTools dmg'sinin indirilmesi, araçların pkg'dan manuel olarak yüklenmesi ve ardından yolu ayarlamak için: xcode-select --switch=/Library/Developer/CommandLineTools. Her şey yolunda gittikten sonra.