Ruby 2.0.0p0 IRB警告:"DL已被弃用,请使用Fiddle"

fbo*_*tti 196 ruby windows

我刚卸载了旧版本的Ruby,删除了所有宝石(包括Rails),并安装了Ruby 2.0.换句话说,一个完全干净的重新安装.启动IRB后,我收到了以下消息:

DL is deprecated, please use Fiddle

注意:我在Windows机器上.

这条消息是什么意思?

Fra*_*ini 208

您收到的邮件是常见的,当你有ruby 2.0.0p0 (2013-02-24)之上的Windows.

消息" DL is deprecated, please use Fiddle" 不是错误; 这只是一个警告.

来源是不久前介绍的DL弃用通知dl.rb(参见修订/ 37910).

在Windows上,lib/ruby/site_ruby/2.0.0/readline.rb文件仍然需要,dl.rb因此当您(因为irb需要)或其他任何想要的时候会出现警告消息.require 'irb''readline'require 'readline'

您可以readline.rb使用自己喜欢的文本编辑器打开并查找代码(第4369行附近):

    if RUBY_VERSION < '1.9.1'
      require 'Win32API'
    else
      require 'dl'
      class Win32API
        DLL = {}
Run Code Online (Sandbox Code Playgroud)

我们总是希望能够在未来的Ruby版本中进行改进.

编辑:对于那些想要深入了解Fiddle vs DL的人,可以说它们的目的是动态地将外部库与Ruby连接起来; 你可以在ruby-doc网站上阅读有关DLFiddle的内容.

  • 在我的Windows机器上,我在`C:\ RailsInstaller\Ruby2.1.0\lib\ruby​​\site_ruby\2.1.0 \`找到了这个文件`rbreadline.rb`和`readline.rb`.我把这行从'require'dl'改为`require'fiddle'.没有更多的警告. (2认同)

Erw*_*ddy 74

你可能想要注释掉DL is deprecated, please use Fiddle警告

C:\Ruby200\lib\ruby\2.0.0\dl.rb

因为它很烦人,你不是irb/pry或其他一些宝石代码所有者

  • 如果在Windows上运行`vagrant up`时遇到此错误,可以在`C:\ vagrant\embedded\lib\ruby​​\2.0.0dl.rb`中找到此文件. (3认同)