2011-01-07 72 views
8

故障排除RVM。RVM ruby​​ 1.9.2未找到符號:_STR2CSTR

安裝了Ruby的1.9.2-頭/ 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/topic/215406

任何解決方案將是偉大的!

+0

什麼操作系統?你是如何安裝RVM的? – 2011-01-08 01:18:52

+0

的Mac OSX 10.6.6版本 安裝RVM使用 $的bash <<(捲曲http://rvm.beginrescueend.com/releases/rvm-install-head) – user567604 2011-01-08 05:44:22

回答

0

你的一個寶石(ncurses?)使用本機C API。 Ruby 1.9中刪除了函數STR2CSTR 因此,無論是使用ffi-ncurses gem還是 修補ncurses gem的源代碼並重新編譯它。

6

我遇到了Ruby 1.9.2和sqlite-ruby-1.2.4 gem的相同問題,它是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的源代碼位於,並通過StringValuePtras described here (first reply)更換的STR2CSTR每次出現來修復它。然後我重新編譯(使用make)並將生成的sqlite3_api.bundle複製到lib /文件夾。

3

我更新了我的sqlite3的,紅寶石寶石SQLITE3 只是改變(在你的Gemfile)

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

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

和運行

bundle install