2010-12-29 2 views

답변

8

sqlite3-ruby의 경우 2011 년 1 월 커밋 이후 지원됩니다. 그러나 일반적으로 에서 루비 젬이 어떻게 작동 하는지를 무시할 수는 없습니다. 그것

  1. 보석을 풉니 다.

  2. &은 'extensions'속성 (일반적으로 특별히 작성된 extconf.rb 파일 경로)을 사용한다는 사실을 알게되었습니다.

  3. Makefile을 생성하기 위해 해당 파일을 실행합니다. extconf.rb를 명시 적으로 작성하지 않은 한 은 env 변수를 존중한다고 말하면 무시됩니다. 당신이 변수로 Makefile을 생성합니다

    CC=gcc gem install sqlite3-ruby 
    

    extconf.rb 배쉬에서 실행하는 경우 예를 들어, sqlite3를-루비 보석의 최신 버전에서, 그 extconf.rb는

    RbConfig::MAKEFILE_CONFIG['CC'] = ENV['CC'] if ENV['CC'] 
    

    그래서 라인을 가지고 CC이 , gcc 또는 원하는대로 설정하십시오.

  4. Makefile이 생성 된 후 rubygems는 make 유틸리티를 실행하여 확장자를 컴파일합니다. 젬 우리가 메이크업에 대한 추가 명령 줄을 매개 변수를 지정할 수있는 경우

이론적으로, 우리는 -e 옵션을 사용할 수있는 다음의 모든 extconf.rb의 저자에 의존하지 않습니다. (-e 옵션은 메이크에서 변수를 통해 환경의 우선 순위에서 가져온 변수를 제공합니다.)

2

RVM을 사용하여 OS X에, 나는 GCC 컴파일러의 영구적 인 변화를 달성하기 위해 다음과 같은 파일을 변경합니다

~/.rvm/rubies/ruby-1.X.Y/lib/ruby/1.X/i686-darwin10.8.0/rbconfig.rb 
을 나는 더 이상이 GCC-4.2 내 상자 만은/usr/빈/GCC의 컴파일이 없다

CONFIG["configure_args"] = " ...' 'CC=/usr/bin/gcc-4.2'" 

    CONFIG["CC"] = "/usr/bin/gcc-4.2" 

    CONFIG["CPP"] = "/usr/bin/gcc-4.2 -E" 

:이 파일에서

나는 다음과 같은 발견했다. gcc로 gcc-4.2를 교체하면 오래된 보석을 설치하는 데 문제가 없습니다. 이것은 내가 업그레이드 할 수없는 오래된 환경에서 일하고 싶다.

관련 문제