Установка wdm gem на JRuby 9.2.8.0 в Windows - PullRequest
0 голосов
/ 19 октября 2019

Мы преобразуем проект Rails из 2.3 в 5.

Одним из многих изменений является сообщение при запуске:

Please add the following to your Gemfile to avoid polling for changes:
    gem 'wdm', '>= 0.1.0' if Gem.win_platform?

При попытке установить гем в моем JRuby 9.2. 8.0, я получаю:

checking for main() in -lkernel32... RuntimeError: The compiler failed to
generate an executable file.
You have to install development tools first.
...
To see why this extension failed to compile, please check the mkmf.log which can
be found here:

M:/workspace/installations/jruby-9.2.8.0/lib/ruby/gems/shared/extensions/universal-java-1.8/2.5.0/wdm-0.1.1/mkmf.log

Этот файл содержит:

" -o conftest.exe -I/include/universal-java1.8 -IM:/workspace/installations/jruby-9.2.8.0/lib/ruby/include/ruby/backward -IM:/workspace/installations/jruby-9.2.8.0/lib/ruby/include -I.     -fno-omit-frame-pointer -fno-strict-aliasing  -fexceptions  conftest.c  -L. -LM:/workspace/installations/jruby-9.2.8.0/lib  -LM:/workspace/installations/jruby-9.2.8.0/lib/native/x86_64-Windows   -m64 -march=native -mtune=native      "
checked program was:
/* begin */
1: #include "ruby.h"
2: 
3: #include <ruby.h>
4: int main(int argc, char **argv)
5: {
6:   return 0;
7: }
/* end */

Примечание: я могу установить штрафа gem на ruby ​​2.6.4p104 (версия 2019-08-2867798) [x64-mingw32], но не в моей установке JRuby

Есть идеи, как установить этот гем для установки?

Или, если нет, есть ли альтернатива wdm, которую я могу использовать? Я заметил, что мои активы не перезагружаются в процессе разработки.

1 Ответ

0 голосов
/ 25 октября 2019

Первый из них больше не актуален, так как JRuby в настоящее время поддерживает расширения C.

, что просто (больше не верно): расширения C экспериментально поддерживаются в JRuby 1.6,в 1.7 начался процесс удаления (они никогда не работали так хорошо), и 9.X не поддерживает их. в наши дни большинство нативных гемов вместо этого имеют специфичный для Java внутренний сервер ext на JRuby.

связанная проблема пыталась установить, что специфичная для Java версия при использовании JRuby, к сожалению, она не была завершена /объединены, но вы можете попробовать часть патча.

вам нужно будет настроить репо с форком с отключенной компиляцией C-ext. или вы можете отключить гем на JRuby (и обработать «определенный» внутренний код в вашем приложении):

gem 'wdm', '>= 0.1.0', platform: [:mri, :mswin]
...