Rmagic不适用于Rails3

我的Rmagic不起作用

ruby-v

ruby 1.8.7(2010-01-10 patchlevel 249)[i386-mingw32]

rails -v

Rails 3.0.0.beta4

IRB

需要rubygems

真正

需要rmagick

真正

但是,我把fllow代码:

gem’rmagick’,: require => false

它错误:

检查Ruby版本> = 1.8.5 ...是检查stdint.h ...没有检查sys / types.h ...没有检查wand / MagickWand.h ...否无法安装RMagick 2.13 0.1。 找不到MagickWand.h。  *** extconf.rb失败***由于某些原因无法创建Makefile,可能缺少必要的库和/或标头。 检查mkmf.log文件以获取更多详细信息。 您可能需要配置选项。 提供的配置选项: -  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 --without-make-prog --srcdir =。  --curdir --ruby = C:/ Ruby / bin / ruby​​ Gem文件将保留在C:/Ruby/lib/ruby/gems/1.8/gems/rmagick-2.13.1中进行检查。 结果从C:/Ruby/lib/ruby/site_ruby/1.8/rubygems/installer.rb记录到C:/Ruby/lib/ruby/gems/1.8/gems/rmagick-2.13.1/ext/RMagick/gem_make.out :446:来自C的“each”:/ Ruby / lib / ruby​​ / site_ruby / 1.8 / ruby​​gems / installer.rb:446:来自C:/Ruby / lib / ruby​​ / site_ruby / 1.8 / ruby​​gems / installer的`build_extensions' .rb:198:来自C:/Ruby/lib/ruby/gems/1.8/gems/bundler-1.0.0/lib/bundler/source.rb的`install':100:来自C:/ Ruby的`install' /lib/ruby/gems/1.8/gems/bundler-1.0.0/lib/bundler/installer.rb:55:in从'C:/Ruby/lib/ruby/gems/1.8/gems/bundler-1.0运行' .0 / lib / bundler / spec_set.rb:12:在C中的'each'中:/Ruby / lib / ruby​​ / gems / 1.8 / gems / bundler-1.0.0 / lib / bundler / spec_set.rb:12:in来自C:/Ruby/lib/ruby/gems/1.8/gems/bundler-1.0.0/lib/bundler/installer.rb:44的'each'来自C:/ Ruby / lib / ruby​​ / gems的`run' /1.8/gems/bundler-1.0.0/lib/bundler/installer.rb:8:in“install”来自C:/Ruby/lib/ruby/gems/1.8/gems/bundler-1.0.0/lib/bundler /cli.rb:217:in“install”来自C:/Ruby/lib/ruby/gems/1.8/gems/bundler-1.0.0/lib/bundler/vendo  r / thor / task.rb:22:来自C的`send':/ Ruby/lib/ruby/gems/1.8/gems/bundler-1.0.0/lib/bundler/vendor/thor/task.rb:22:来自C:/Ruby/lib/ruby/gems/1.8/gems/bundler-1.0.0/lib/bundler/vendor/thor/invocation.rb的“run”:118:在`C:/ Ruby / lib中调用/ruby/gems/1.8/gems/bundler-1.0.0/lib/bundler/vendor/thor.rb:246:in“dispatch”来自C:/Ruby/lib/ruby/gems/1.8/gems/bundler-1.0 .0 / lib / bundler / vendor / thor / base.rb:389:来自C的`start':/ Ruby/lib/ruby/gems/1.8/gems/bundler-1.0.0/bin/bundle:13来自C :/ Ruby / bin / bundle:19:来自C:/ Ruby / bin / bundle的`load':19 

请帮帮我,谢谢!

MagickWand.h是ImageMagick的一部分,RMagick安装程序找不到它。 您似乎需要在系统上安装ImageMagick,或者如果安装了ImageMagick,则需要将库添加到gem安装程序可以看到的路径中。 如果没有在系统上安装ImageMagick或GraphicsMagick,RMagick将无法运行。

更新的答案由于您使用的是Windows,您需要手动下载gem并进行安装。 安装FAQ说:

使用rmagick-win32 gem。 此gem与ImageMagick Windows安装程序的副本捆绑在一起,因此您无需下载自己的副本。 从RubyForge上的RMagick项目页面下载rmagick-win32 gem,将其解压缩到一个临时目录中,然后按照软件包中的README.html文件中的说明进行操作。

http://rubyforge.org/projects/rmagick/

我想你可能想要卸载已经安装的imagemagick版本,以防有任何冲突。 手动安装gem后,您应该可以将它放在Gemfile中并捆绑安装。 没有在windows上使用rmagick,我不确定你是否将gem引用为“rmagick”或“rmagick-win32”。 手动安装gem后,您可以通过运行“gem list”命令来解决这个问题。 看看哪一个显示并将其放入您的Gemfile中,以便它可以找到已安装的版本.Bundler将使用此gem而不是尝试安装新的gem。

这段代码应该诀窍……

require 'RMagick' require 'rmagick'