2014-07-23 3 views
3

Я только что установил Рубиновый драгоценный камень «sqlite3» для окон с помощью командыМодуль Native Ruby дает ошибку «Указанный модуль не найден». который не является истинным

>gem install sqlite3 --platform=ruby -- --with-sqlite3-include=c:/sqlite3/include --with-sqlite3-lib=c:/sqlite3/lib --with-sqlite3-dir=c:/sqlite3/bin 

Это скомпилированный, казалось бы, отлично, но когда я пытаюсь включить камень я получаю:

irb(main):001:0> require "sqlite3" 
LoadError: 126: The specified module could not be found. - C:/Ruby200/lib/ruby/gems/2.0.0/gems/sqlite3-1.3.9/lib/sqlite3/sqlite3_native.so 
     from C:/Ruby200/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require' 
     from C:/Ruby200/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require' 
     from C:/Ruby200/lib/ruby/gems/2.0.0/gems/sqlite3-1.3.9/lib/sqlite3.rb:6:in `rescue in ' 
     from C:/Ruby200/lib/ruby/gems/2.0.0/gems/sqlite3-1.3.9/lib/sqlite3.rb:2:in `' 
     from C:/Ruby200/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:135:in `require' 
     from C:/Ruby200/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:135:in `rescue in require' 
     from C:/Ruby200/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:144:in `require' 
     from (irb):1 
     from C:/Ruby200/bin/irb:12:in `'

Поэтому я проверил путь, который он дал для «sqlite3_native.so», и вот и вот, вот оно! Как будто это должно быть. Так почему же Руби лжет мне? Как я могу узнать real причина, почему камень не работает?

Причины я строй камня вручную является то, что предварительно построенным камень поставляется с устаревшей версией SQLite3

+0

Вы видели это http://stackoverflow.com/questions/15480381/how-do-i-install-sqlite3-for-ruby-on-windows? особенно шаг № 9 в первом ответе –

+0

@UriAgassi: Rails приложение? У меня нет приложения для рельсов. Я просто пытаюсь включить sqlite3 с помощью irb. Кроме того, у меня нет нескольких версий sqlite3-ruby, только 1.3.9. – Hubro

ответ

1

В принципе я нашел свой ответ в HEADS UP части this answer.

"sqlite3.dll" и "sqlite3.def" необходимо разместить где-то в PATH. Я скопировал их в «C: \ Ruby200 \ bin», и теперь могу успешно выполнить require "sqlite3". Однако я должен сказать, что это пример чрезвычайно бесполезного сообщения об ошибке от Ruby.

+0

У меня точно такая же проблема, как и вы, за исключением того, что .def и .dll в папке на моей системе PATH не изменили ошибку. – Jason

Смежные вопросы