Вы действительно не должны использовать mswin32
версии Ruby (иначе. One-Click Installer).Они устарели.Они скомпилированы с Microsoft Visual C ++ 6.0 (он же MSVC6), который был выпущен в 1998 году (!).Код, скомпилированный с помощью MSVC6, несовместим с кодом, скомпилированным как с GCC, так и с более новыми версиями MSVC.Это намного медленнее, поскольку за последние 12 лет многое произошло в области исследований оптимизации компиляторов.
Из-за несовместимости все библиотеки, которые использует Ruby, все расширения C, все библиотеки, которые являются расширениями Cиспользовать и так далее, также должны быть скомпилированы с MSVC6.Тем не менее, MSVC6 даже не доступен больше.Кроме того, многие проекты с открытым исходным кодом тестируют только на совместимость с GCC, а не с MSVC (и, конечно, не с версией MSVC, которая устарела в течение почти десятилетия).
Используйте версии mingw32
(также известные как * 1009).* RubyInstaller ) вместо этого.Они скомпилированы с GCC 3.4 или 4.5 ((почти) последняя версия).С дополнительным DevKit вы можете установить любое расширение C, без необходимости предоставления предварительно скомпилированной версии автору гема;gem просто компилируется на вашем локальном компьютере, точно так же, как в Linux или OSX.
Тем не менее, то, что в конце --platform = mswin32, чертовски беспокоит меня.Я имею в виду, что моя платформа x64, как и должно быть.
Вы уверены, что у вас есть 64-битная версия Ruby?Как я писал выше, версии mswin
обычно скомпилированы с MSVC6, который вышел в 1998 году. AMD64 была анонсирована только в 1999 году, спецификация не была закончена до 2000 года, а первые процессоры не появлялись до 2003 года, поэтомуесли у Microsoft нет технологии путешествий во времени, 64-битная версия MSVC6 просто не может существовать!
Насколько я знаю, нет предварительно скомпилированных версий Ruby для 64-битной Windows.Разработчики RubyInstaller только начали работать над 64-битной mingw
сборкой.
Если вы сами скомпилировали Ruby, вы должны использовать --platform=ruby
для принудительной компиляции Gems в вашей локальной системе, посколькускомпилированные mswin32
Доступные гемы несовместимы с вашей системой, так как они: а) 32-битные и б) скомпилированы с MSVC6, который несовместим с любым компилятором, который вы использовали.