繁体   English   中英

在 Windows 上的 JRuby 9.2.8.0 上安装 wdm gem

[英]Installing wdm gem on JRuby 9.2.8.0 on Windows

我们正在将 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 安装中安装 gem 时,我得到:

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 */

注意:我可以在 ruby 2.6.4p104(2019-08-28 修订版 67798)[x64-mingw32] 上安装 gem,但不能在我的 JRuby 安装中

关于如何安装这个 gem 的任何想法?

或者如果没有,我可以使用 wdm 的替代品吗? 我注意到我的资产现在没有在开发中正确重新加载。

第一个不再相关,因为 JRuby 现在确实支持 C 扩展。

这简直(不再)是真的:在 JRuby 1.6 周围实验性地支持 C 扩展,在 1.7 中删除过程(它们从未真正工作得那么好)开始并且 9.X 不支持它们。 现在,大多数原生 gem 在 JRuby 上都有一个 Java 特定的 ext 后端。

链接的问题试图在使用 JRuby 时确定 Java 特定版本,不幸的是它没有完成/合并,但您可以尝试补丁。

您需要使用禁用 C-ext 编译的补丁设置一个 fork 存储库。 或者您可以禁用 JRuby 上的 gem(并在您的应用程序中处理“特定”后端代码):

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM