...mysql2/mysql2.so: [BUG] Ошибка сегментации ruby ​​2.0.0p247

Я использую windows7x64, ruby2.0.0p247, rails4.0.0 и mysql5.5.27.
Когда я бегу $ rails server Команда, я получил следующую ошибку.

C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/mysql2-0.3.13/lib/mysql2/mysql2.so: [BUG] Segmentation fault
ruby 2.0.0p247 (2013-06-27) [x64-mingw32]

Как я могу избавиться от этой ошибки?

1 ответ

Решение

Файл libmysql.lib, включенный в 64-разрядную версию MySQL Connector/C, не совместим с компилятором mingw64-gcc.

Вам необходимо создать совместимый с mingw64 файл libmysql.lib.

Для создания файла libmysql.lib вам потребуется gendef.exe, который можно получить из дистрибутива mingw-w64 (я получил по https://code.google.com/p/structure-svm-map/downloads/detail?name=svm-map-win.zip&can=2&q=)

В папке lib коннектора mysql создайте libmysql.lib, выполнив следующие шаги.

gendef.exe libmysql.dll

dlltool -v --dllname libmysql.dll --def libmysql.def --output-lib libmysql.lib

И запускаем обычную команду gem install. gem install mysql2 -v '0.3.12b6' -- -with-opt-dir="..."

ПРИМЕЧАНИЕ. В случае MySQL Connector/C 6.1 из-за процедуры сравнения версий нельзя использовать модуль mysql2 со следующим исключением. RuntimeError: Неверная версия клиентской библиотеки MySQL! Этот гем был скомпилирован для 5.7.2-m12, но клиентская библиотека - 6.1.0.

Вы должны использовать mysql-connector-c-6.0.2-winx64.msi в http://dev.mysql.com/downloads/connector/c/6.0.html

Источник: https://bugs.ruby-lang.org/issues/8591

Другие вопросы по тегам