Ошибка сегментации при компиляции mysql2 с mingw

Когда я пытаюсь создать Rails-сервер, это то, что я получаю. Он мгновенно запускает строки 500+ кода и возвращается с этим сообщением. Это мой первый проект Ruby on Rails. Я новичок в кодировании. Если бы по возможности понравилась бы какая-то помощь. Спасибо!

C:/Ruby200-x64/lib/ruby/gems/2.0.0/extensions/x64-mingw32/2.0.0/mysql2-0.3.15/my
sql2/mysql2.so: [BUG] Segmentation fault
ruby 2.0.0p451 (2014-02-24) [x64-mingw32]


 0 enumerator.so
 1 C:/Ruby200-x64/lib/ruby/2.0.0/x64-mingw32/enc/encdb.so
 2 C:/Ruby200-x64/lib/ruby/2.0.0/x64-mingw32/enc/iso_8859_1.so
 3 C:/Ruby200-x64/lib/ruby/2.0.0/x64-mingw32/enc/trans/transdb.so
 4 C:/Ruby200-x64/lib/ruby/2.0.0/x64-mingw32/rbconfig.rb
 5 C:/Ruby200-x64/lib/ruby/site_ruby/2.0.0/rubygems/compatibility.rb
 6 C:/Ruby200-x64/lib/ruby/site_ruby/2.0.0/rubygems/defaults.rb
 7 C:/Ruby200-x64/lib/ruby/site_ruby/2.0.0/rubygems/deprecate.rb
 8 C:/Ruby200-x64/lib/ruby/site_ruby/2.0.0/rubygems/errors.rb
 9 C:/Ruby200-x64/lib/ruby/site_ruby/2.0.0/rubygems/version.rb
 10 C:/Ruby200-x64/lib/ruby/site_ruby/2.0.0/rubygems/requirement.rb
 11 C:/Ruby200-x64/lib/ruby/site_ruby/2.0.0/rubygems/platform.rb
 12 C:/Ruby200-x64/lib/ruby/site_ruby/2.0.0/rubygems/basic_specification.rb
 13 C:/Ruby200-x64/lib/ruby/site_ruby/2.0.0/rubygems/stub_specification.rb
 14 C:/Ruby200-x64/lib/ruby/site_ruby/2.0.0/rubygems/util/stringio.rb
 15 C:/Ruby200-x64/lib/ruby/site_ruby/2.0.0/rubygems/specification.rb
 16 C:/Ruby200-x64/lib/ruby/site_ruby/2.0.0/rubygems/exceptions.rb
 17 C:/Ruby200-x64/lib/ruby/2.0.0/rubygems/defaults/operating_system.rb
 18 C:/Ruby200-x64/lib/ruby/2.0.0/x64-mingw32/enc/utf_16le.so
 19 C:/Ruby200-x64/lib/ruby/2.0.0/x64-mingw32/enc/trans/utf_16_32.so
 20 C:/Ruby200-x64/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_gem.rb


 537 C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/activesupport-4.0.0/lib/active_sup
port/core_ext/module.rb
 538 C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/actionpack-4.0.0/lib/action_view/r
ecord_identifier.rb
 539 C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/actionpack-4.0.0/lib/action_view/h
elpers/record_tag_helper.rb
 540 C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/actionpack-4.0.0/lib/action_view/h
elpers/rendering_helper.rb
 541 C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/actionpack-4.0.0/lib/action_view/h
elpers/translation_helper.rb
 542 C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/actionpack-4.0.0/lib/action_view/h
elpers.rb
 543 C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/sprockets-rails-2.0.1/lib/sprocket
s/rails/helper.rb
 544 C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/railties-4.0.0/lib/rails/engine/co
nfiguration.rb
 545 C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/railties-4.0.0/lib/rails/applicati
on/configuration.rb
 546 C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/sprockets-rails-2.0.1/lib/sprocket
s/railtie.rb
 547 C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/railties-4.0.0/lib/rails/all.rb
 548 C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/activesupport-4.0.0/lib/active_sup
port/string_inquirer.rb
 549 C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/mysql2-0.3.15/lib/mysql2/version.r
b
 550 C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/mysql2-0.3.15/lib/mysql2/error.rb

[NOTE]
You may have encountered a bug in the Ruby interpreter or extension libraries.
Bug reports are welcome.
For details: http://www.ruby-lang.org/bugreport.html


This application has requested the Runtime to terminate it in an unusual way.
Please contact the application support team for more information.

C:\Users\MVParker\Documents\Sites\simple_cms>
2 ответа

Я googled "x64-mingw32 mysql2 Ошибка сегментации" и нашел это: https://bugs.ruby-lang.org/issues/8591

Похоже, есть ошибка в mysql2. Комментарий к проблеме Ruby дает обходной путь, регенерирующий libmysql.lib с вашим компилятором. Пожалуйста, сообщите нам об этом и сообщите нам, если это сработает.


После ответа от Дэйва Швайсгута, о рубиновой ошибке и выполнении шагов, описанных в комментарии Хезоба Парка, я мог бы заставить камень mysql2 работать. Спасибо, ребята, за это.

Quote от Heesob комментарий:

Libmysql.lib, включенный в бит MySQL Connector/C 64, несовместим с компилятором mingw64-gcc.

Вам нужно сгенерировать файл libmysql.lib, совместимый с mingw64.

Чтобы создать совместимый файл libmysql.lib, я выполнил следующие шаги: (Я запускаю Win8.1 x64 с Ruby 2.0.0p481 [x64-mingw32])

1) Загрузили этот zip файл https://structure-svm-map.googlecode.com/files/svm-map-win.zip и извлекли его в файл ac:\tmp\svm-map

2) Загрузил Mysql C/Connector 6.1 из http://dev.mysql.com/get/Downloads/Connector-C/mysql-connector-c-6.1.3-winx64.zip и извлек его в c:\tmp\mysql

3) Открытая подсказка CMD

4) cd \tmp\svm-map\python-mingw-lib

5) gendef.exe \tmp\mysql\lib\libmysql.dll

6) move libmysql.def \tmp\mysql\lib

7) cd \tmp\mysql\lib

8) \Ruby200-x64\DevKit\mingw\bin\dlltool -v --dllname libmysql.dll --def libmysql.def --output-lib libmysql.lib

9) gem install mysql2 -- --with-mysql-dir=c:\tmp\mysql

Это оно! Mysql2 работает на Rails x64 в Windows 8.1! знак равно

licensed under cc by-sa 3.0 with attribution.