我想在Windows上安装ruby的ncurses。 我之前没有在我的机器上安装过ncurses。 我以为拥有它所要求的“ruby devkit”就足够了,但是现在我被要求指定选项……我不知道要select哪个选项,或者如果我需要/安装其他东西为gem得到安装:
C:\Ruby193\Devkit>gem install ncurses -- --ruby=C:/Ruby193/bin/ruby --without-make-prog --without-opt-dir Temporarily enhancing PATH to include DevKit... Building native extensions. This could take a while... ERROR: Error installing ncurses: ERROR: Failed to build gem native extension. C:/Ruby193/bin/ruby.exe extconf.rb --ruby=C:/Ruby193/bin/ruby --without-make-prog --without-opt-dir C:/Ruby193/lib/ruby/1.9.1/shellwords.rb:35:in `shellsplit': undefined method `scan' for false:FalseClass (NoMethodError) from C:/Ruby193/lib/ruby/1.9.1/mkmf.rb:2216:in `<top (required)>' from C:/Ruby193/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require' from C:/Ruby193/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require' from extconf.rb:22:in `<main>' Gem files will remain installed in C:/Ruby193/lib/ruby/gems/1.9.1/gems/ncurses-0.9.1 for inspection. Results logged to C:/Ruby193/lib/ruby/gems/1.9.1/gems/ncurses-0.9.1/./gem_make.out
什么是痛苦,我只想安装这个gem,所以我可以运行这个:
require 'curses' cols = Curses.stdscr.maxx msg = "random_string" str = msg.center(msg.length + cols - msg.length - 5 - 3) puts "<!-- #{str}-->"
更新后的版本:
gem install curses --platform=ruby -- --with-ncurses-dir="C:\ncurses"
C:\ ncurses可以是任何目录
ruby ncurses gem要求在机器上安装ncurses。 据我所知,ncurses还没有被移植到Windows。 所以我不认为你会得到这个工作。
可能还有其他方法可以找出窗户在窗户上的宽度,但是我无法帮助你。
我已经设法为ruby 2.2做了这个,默认情况下这个ruby不是用curses来的,但是花了我一段时间:
ruby -e 'puts $:'
可能有帮助; gem instal curses
。 如果上一步是错误的,这将失败; 这种方法不适用于其他的宝石,如ffi-ncurses。 提示:大部分的curses功能都来自Window类 ,默认情况下它带有curses。
更新:似乎SourceForge不再承载Windows的NCurses二进制文件。 这个答案现在已经过时了。 抱歉! (截至2015年8月, GNU NCurses Page列出了一个“新”v6.0版本,比我的答案中的0.9.1更新版本。)
我终于得到这个工作(多年后,我需要它…) 没有 Cygwin,PDCurses,或手动构建NCurses源。 说明可在我的博客上找到 。 以供参考:
ruby -e 'puts $:'
查找Ruby搜索库ruby -e 'puts $:'
有用。 没有PDCurses!
我已经成功地从sourceforge下载了ncurses 0.9.1的二进制文件 ,所以库仍然可用。
然后我尝试了原生Ruby和IronRuby 1.1.3
放置两个文件(ncurses.so ncurses.rb)中
C:\红宝石\ Ruby193 \ LIB \红宝石\ 1.9.1
给本地Ruby提供了一个错误
指定的模块无法找到。 – C:/Ruby/Ruby193/lib/ruby/1.9.1/ncurses.so(LoadError)
把它们放在这里(for IronRuby)C:\ Program Files文件(x86)\ IronRuby 1.1 \ Lib \ ruby \ 1.9.1
给
该模块预计包含一个汇编清单。 (来自HRESULT的异常:0x80131018)