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/topic/215406
任何解决方案都会很棒!
答案 0 :(得分: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
我可以通过转到sqlite3_api.bundle的源代码所在的~/.rvm/gems/ruby-1.9.2-p136/gems/sqlite3-ruby-1.2.4/ext
来修复它,并将STR2CSTR
的每次出现替换为StringValuePtr
{{3} }。然后我重新编译(使用make)并将生成的sqlite3_api.bundle
复制到lib /文件夹。
答案 1 :(得分:3)
我将sqlite3-ruby gem更新为sqlite3 只需更改(在您的Gemfile中)
gem 'sqlite3-ruby', :require => 'sqlite3'
到
gem 'sqlite3', :require => 'sqlite3'
并运行
bundle install
答案 2 :(得分:0)
你的一个宝石(ncurses?)使用原生C API。 在Ruby 1.9中删除了函数STR2CSTR 所以要么你使用ffi-ncurses gem,要么就是你 修补ncurses gem的来源并重新编译它。