[ruby] gem 기본 확장을 빌드하지 못했습니다 (Compass 설치)

최신 버전의 나침반 ( https://rubygems.org/gems/compass/versions/1.0.0.alpha.17 ) 을 설치하려고 하면 다음 오류가 발생합니다.

ERROR:  Error installing compass:
ERROR: Failed to build gem native extension.

 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=" clean

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

make failed, exit code 2

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/extensions/universal-darwin-13/2.0.0/ffi-1.9.3/gem_make.out

무슨 일이야? 최신 나침반을 오류없이 설치하려면 어떻게합니까?



답변

이것을 시도한 다음 나침반을 다시 설치하십시오

apt-get install ruby-dev


답변

나침반을 설치하려면 Mac OS X 10.10 (Yosemite)에서 다음을 수행해야합니다.

1. 루비 환경 설정

  • 루비가 설치되어 있고 최신인지 확인하십시오 : ruby -v
  • 보석 업데이트 sudo gem update --system

2. MAC 환경 설정

설치 엑스 코드 명령 행 도구 이 나침반을 설치하는 키입니다.

xcode-select --install

Xcode 명령 행 도구 설치는 OS X에서 Compass를 작동시키는 열쇠입니다

3. 나침반 설치

sudo gem install compass


답변

가장 좋은 방법은 sudo apt-get install ruby-compass나침반을 설치하는 것입니다.


답변

데비안에서 시도해 볼 수 있습니다

sudo apt-get install gcc ruby-dev rubygems compass

페도라, 센 토스

yum -y install gcc ruby-devel rubygems compass

그것은 나를 위해 일했다.


답변

나는 약 3 시간 동안 같은 문제로 어려움을 겪었습니다. 현재 Compass 1.0.alpha19rvm 버전 1.9.3이 필요합니다.

수집되지 않은 게시물이 여러 개 있지만 나를 위해 일한 것은 다음과 같습니다.

  1. sudo gem uninstall sass
  2. sudo gem uninstall compass
  3. rvm install ruby-1.9.3-p448
  4. sudo gem install sass --pre
  5. sudo gem install compass --pre

그렇게 했어요 그것이 당신에게도 효과가 있기를 바랍니다!


답변

이 문제를 해결하려면 최신 버전의 루비와 보석이 있어야합니다 gem update --system. 그런 다음 Xcode 및 명령 줄 도구가 설치되어 있는지 확인해야했습니다 xcode-select --install.


답변

Mac OS에서는이 기능을 설치해야합니다!

xcode-select --install