Как заставить установки Ruby Gems в Windows использовать MinGW для создания и компиляции?
Попытка обновить некоторые драгоценные камни на машине Windows, и я постоянно получаю эту ошибку вывода для драгоценных камней, которые не имеют предварительно скомпилированных двоичных файлов:
Предоставляются варианты конфигурации:
--with-opt-dir --without-opt-dir --with-opt-include --without-opt-include=${opt-dir}/include --with-opt-lib --without-opt-lib=${opt-dir}/lib --with-make-prog --srcdir=. --curdir --ruby=c:/server/ruby/bin/ruby
Это параметры конфигурации, которые предоставляются файлу extconf.rb ruby во время установки гема.
Я установил MinGW, поэтому у меня должно быть все, что мне нужно для установки, сборки и компиляции этих гемов.
Однако я не знаю, как изменить конфигурацию для RubyGems, чтобы при вызове extconf.rb включались соответствующие параметры, указывающие на каталог включения MinGW.
5 ответов
Существует DevKit, который вполне может быть тем, что вы ищете.
Я не знаю, работает ли это с родным Windows Ruby, но если вы используете версию Cygwin и у вас установлена полная версия Cygwin (компиляторы и т. Д.), То у вас не должно возникнуть проблем - мы смогли использовать много драгоценные камни, которые требуют скомпилированные вещи.
Yardboy,
Жаль, что вы не упомянули, какой драгоценный камень вы пытаетесь обновить, вы только поместили туда параметры вывода.
Кроме того, некоторые из этих гемов нуждаются в заголовках разработки и библиотеках, а не только в компиляторе (MinGW).
Кроме того, MinGW будет работать до тех пор, пока ваша сборка Ruby создается с помощью MinGW.
Чтобы облегчить это, необходимо проделать определенную работу, но требования к компилятору, заголовкам и библиотекам необходимы на всех платформах, а не только в Windows.
Вы можете найти больше информации и ресурсов в моем блоге
Приветствия.
У меня была точно такая же проблема.
Единственный способ, которым я нашел, чтобы заставить гемы, у которых не было предварительно скомпилированных двоичных файлов, таких как parsetree, работать в Windows, было перекомпилировать исходный код Ruby с использованием Mingw, а также скопировать несколько библиотек и приложений из уже установленной мной визуальной установки C++. Я скопировал библиотеку zlib, а также библиотеку iconv и приложение.
Примечание. Я использую эту настройку в качестве тестовой конфигурации. Я бы не стал использовать такую настройку для производства (так как кто знает, что происходит, когда вы переводите библиотеку из одного дистрибутива в другой).
В целом, по моему опыту, код, разработанный для Unix-системы, может быть очень сложным для работы на MinGW. Для быстрого переноса используйте CygWin. Или сделайте полный порт программного обеспечения для хоста Windows, включая использование встроенной оболочки Windows и API -интерфейса ОС, что довольно дорого с точки зрения времени, но окупается, если вы планируете поддерживать Windows в долгосрочной перспективе.
Не знакомый с этим конкретным программным пакетом, это всего лишь общее наблюдение за попыткой перенести некоторые другие подлые кусочки кода на Windows.