RVM ruby ​​1.9.2 Символ не найден: _STR2CSTR - PullRequest
8 голосов
/ 08 января 2011

Устранение неисправностей RVM.

Установлены оба Ruby 1.9.2-Head / 1.9.2-p136

При запуске сервера происходит сбой сервера при получении этой ошибки:

dyld: lazy symbol binding failed: Symbol not found: _STR2CSTR
Expected in: flat namespace

dyld: Symbol not found: _STR2CSTR
Expected in: flat namespace

Нашел эту публикацию, но она не сильно помогла: http://www.ruby -forum.com / тема / 215406

Любые решения будут великолепны!

Ответы [ 3 ]

6 голосов
/ 05 февраля 2011

У меня была такая же проблема с Ruby 1.9.2 и гемом sqlite-ruby-1.2.4, что так или иначе требуется для Rails 3.0.3. Это было мое сообщение об ошибке:

dyld: Symbol not found: _STR2CSTR
  Referenced from: ~/.rvm/gems/ruby-1.9.2-p136/gems/sqlite3-ruby-1.2.4/lib/sqlite3_api.bundle
Expected in: flat namespace

И я смог исправить это, перейдя в ~/.rvm/gems/ruby-1.9.2-p136/gems/sqlite3-ruby-1.2.4/ext, где был расположен исходный код для sqlite3_api.bundle, и заменив каждое вхождение STR2CSTR на StringValuePtr , как описано здесь (первый ответ) . Затем я перекомпилировал (используя make) и скопировал полученный sqlite3_api.bundle в папку lib /.

3 голосов
/ 04 октября 2011

Я обновил свой драгоценный камень sqlite3-ruby до sqlite3 Просто измените (в вашем Gemfile)

gem 'sqlite3-ruby', :require => 'sqlite3'

на

gem 'sqlite3', :require => 'sqlite3'

и запустите

bundle install
0 голосов
/ 08 января 2011

Один из ваших драгоценных камней (ncurses?) Использует родной C API. Функция STR2CSTR была удалена в Ruby 1.9 Так что вы либо используете гем ffi-ncurses, либо можете Исправьте источник камня ncurses и перекомпилируйте его.

...