如何在Windows 7 64位系统上使用Rails 3.1和Carrierwave使Rmagick工作?

3

我在Windows上使用rmagick遇到了问题。有人知道如何正确使用它吗?最好能够与生产环境兼容,但我会接受任何可行的方法。

C:\> gem install rmagick --platform=ruby -- --with-opt-lib=%IMAGE_MAGICK_HOME%/lib --with-opt-include=%IMAGE_MAGICK_HOME%/include
Temporarily enhancing PATH to include DevKit...
Building native extensions.  This could take a while...
ERROR:  Error installing rmagick:
        ERROR: Failed to build gem native extension.

        c:/ruby192/bin/ruby.exe extconf.rb --with-opt-lib=C:\Program Files (x86)\ImageMagick-6.7.0-Q16/lib --with-opt-include=C:\Program Fil
es (x86)\ImageMagick-6.7.0-Q16/include
checking for Ruby version >= 1.8.5... yes
checking for stdint.h... *** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.

Provided configuration options:
        --with-opt-dir
        --without-opt-dir
        --with-opt-include=${opt-dir}/include
        --with-opt-lib=${opt-dir}/lib
        --with-make-prog
        --without-make-prog
        --srcdir=.
        --curdir
        --ruby=c:/ruby192/bin/ruby
c:/ruby192/lib/ruby/1.9.1/mkmf.rb:368:in `try_do': The complier failed to generate an executable file. (RuntimeError)
You have to install development tools first.
        from c:/ruby192/lib/ruby/1.9.1/mkmf.rb:452:in `try_cpp'
        from c:/ruby192/lib/ruby/1.9.1/mkmf.rb:834:in `block in have_header'
        from c:/ruby192/lib/ruby/1.9.1/mkmf.rb:693:in `block in checking_for'
        from c:/ruby192/lib/ruby/1.9.1/mkmf.rb:280:in `block (2 levels) in postpone'
        from c:/ruby192/lib/ruby/1.9.1/mkmf.rb:254:in `open'
        from c:/ruby192/lib/ruby/1.9.1/mkmf.rb:280:in `block in postpone'
        from c:/ruby192/lib/ruby/1.9.1/mkmf.rb:254:in `open'
        from c:/ruby192/lib/ruby/1.9.1/mkmf.rb:276:in `postpone'
        from c:/ruby192/lib/ruby/1.9.1/mkmf.rb:692:in `checking_for'
        from c:/ruby192/lib/ruby/1.9.1/mkmf.rb:833:in `have_header'
        from extconf.rb:193:in `<main>'


Gem files will remain installed in c:/ruby192/lib/ruby/gems/1.9.1/gems/rmagick-2.13.1 for inspection.
Results logged to c:/ruby192/lib/ruby/gems/1.9.1/gems/rmagick-2.13.1/ext/RMagick/gem_make.out

@Zabba:使用开发工具包时,它无法正确安装。它需要一些找不到的库。我尝试过下载imagemagick和rmagick并编译它们,但是在尝试编译rmagick时失败了。开发工具包似乎没有按照预期的方式工作。基本上,gem install rmagick并不是“一切顺利” - 远非如此:/ - Fire Emblem
2个回答

4

在这个帖子里的回答使得我在我的两台电脑上都可以使用:在Windows上安装RMagick

希望对您也有帮助!


我已经完成了大部分工作。我将粘贴错误信息。天啊,我希望这能更容易些。Rmagick是大多数人都需要的东西。我希望devkit默认提供一些帮助。这对每个人来说都太难了 :( - Fire Emblem
终于搞定了。我其实不知道我做了什么,它就突然好了。 - Fire Emblem

0

供日后参考:我刚刚按照Reddit帖子中的指示,在Windows上将rmagick安装到Ruby 2.1-x64中,以下是转载的指示:


http://rubyinstaller.org/downloads/下载Ruby开发工具包并在某个地方解压缩。 (顺便说一句,您的Ruby也必须来自Rubyinstaller,否则开发工具包会提示无法工作。)

通过执行以下操作初始化您的DevKit:

dk.rb init

这将在您的系统上创建一个包含 Ruby 列表的 config.yml 文件,您可以编辑它并删除您不关心的部分。

dk.rb review

为了确保前一步骤顺利进行

dk.rb install

要将DevKit安装到Ruby中,完成后您将能够编译本地的Ruby扩展。

链接下载ImageMagick(ImageMagick-6.9.2-3-Q16-x64-dll.exe适用于我),并将其安装在没有空格的路径中。确保勾选将应用程序目录添加到系统路径安装C和C++的头文件和库

重新启动命令行窗口以确保PATH更改生效。

快速设置PATH,确保ImageMagick位于PATH的最前面,否则安装将失败(因为一个安装脚本调用convert.exe,它是来自ImageMagick,但C:\Windows\system32\convert.exe也存在)。

运行以下行,适当替换为您系统上ImageMagick的位置(记住,路径不应该包含空格):

gem install rmagick --platform=ruby -- --with-opt-lib=D:/Tools/ImageMagick-6.9.2-Q16/lib --with-opt-include=D:/Tools/ImageMagick-6.9.2-Q16/include --with-opt-dir=D:/Tools/ImageMagick-6.9.2-Q16

它应该运转几分钟,然后你就完成啦。

顺便说一下,只要你打算使用RMagick,你就必须在你的PATH中安装ImageMagick。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接