ImageMagick - “未找到CORE_RL_magick_.dll”或如何使用ruby 1.9.2在Windows上安装RMagick

时间:2011-04-27 22:27:29

标签: ruby-on-rails ruby windows imagemagick rmagick

我正在开发一款Rail3应用。 经过几个小时的努力,最后在win7x64 / ruby​​ 1.9.2上安装了rmagick 2.13.1 gem而没有错误,我遇到了另一个错误。是的,我听说窗户中的铁轨体验可能很痛苦......

我使用carrierwave处理图像并将其上传到AWS S3。 处理看起来像

class IconUploader < CarrierWave::Uploader::Base

require 'rmagick'
include CarrierWave::RMagick
... 
process :resize_to_fit => [100, 100]
process :convert => :png
...

当我在我的开发机器上触发文件上传时,它会弹出一个窗口弹出窗口,说

  

未找到CORE_RL_magick_.dll

Google对此并不是很有帮助。

我将PATH变量设置为C:/ ruby​​192 / ImageMagick - 我已将ImageMagick安装到的位置。此文件夹有几个CORE_RL dll,包括 magick DLL本身并没有丢失!

irb > require 'rmagick'返回true 并convert -version输出:

Version: ImageMagick 6.6.9-6 2011-04-14 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2011 ImageMagick Studio LLC
Features: OpenMP

所以我有几个问题。

  1. 我该如何解决这个问题?
  2. elseif我没有,是否还有Windows和heroku都支持的其他宝石和/或图形库?
  3. else也许有办法配置carrierwave,而不是在开发环境中处理图像
  4. 到目前为止,我已经尝试了ImageMagick v 6.6.9 32bit dll,它给出了CORE_RL dll错误, 64位静态,没有用于编译rmagick gem的dev头, 和64位动态,在宝石编译期间,每次测试都会产生undefined reference个错误,除了第一个:

    checking for snprintf() in assert.h,ctype.h,stdio.h,stdlib.h,math.h,time.h,stdint.h,sys/types.h,wand/MagickWand.h... yes
    checking for AcquireImage() in assert.h,ctype.h,stdio.h,stdlib.h,math.h,time.h,stdint.h,sys/types.h,wand/MagickWand.h... no
    and so on...
    

    谢谢大家。

4 个答案:

答案 0 :(得分:18)

我终于设法安装ImageMagick并构建RMagick gem并使其全部工作。万岁。

似乎问题出在DLL本身。当我试图注册它时,windows给了我一个关于dll问题的错误。

所以我解决所有问题的方法是:

  1. 转发here
  2. 下载ImageMagick 6.6.1-10 32位动态或任何其他版本,目前最新版本6.6.9除外,它有一些DLL问题
  3. 使用选项安装它:添加到PATH和开发标题。 安装路径不应包含空格。 安装完成后,它会给你一个关于成功dll注册的消息框。
  4. 在命令行中输入convert -version来检查一切是否正常。它应该打印如下:

    版本:ImageMagick 6.6.1-10 2010-05-15 Q16 http://www.imagemagick.org 版权:版权所有(C)1999-2010 ImageMagick Studio LLC 功能:OpenMP

  5. 如果您还没有安装DevKit

  6. 安装rmagick gem:gem install rmagick --platform=ruby -- --with-opt-lib=c:/ruby192/ImageMagick/lib --with-opt-include=c:/ruby192/ImageMagick/include
  7. 应打印

    Temporarily enhancing PATH to include DevKit...
    Building native extensions.  This could take a while...
    

    几分钟后,如果一切顺利,你应该看到

    Successfully installed rmagick-2.13.1
    1 gem installed
    Installing ri documentation for rmagick-2.13.1...
    Installing RDoc documentation for rmagick-2.13.1...
    

    就是这样。希望这可以节省一些人在挫折中浪费几个小时。

    另外两个有用的链接:12如果仍然无法安装

答案 1 :(得分:2)

这很难安装。此时此刻,我不得不重新安装Ruby,Rails,Devkit和ImageMagick。你最好的选择是做同样的事情并使用除了Rails之外的所有版本的最新版本,除非你很酷的3.1。目前我正在使用最新版本:

ImageMagick-6.7.2-1-Q16-windows-dll - Win32 dynamic at 16 bits-per-pixel

DevKit-tdm-32-4.5.2-20110712-1620-sfx

rubyinstaller-1.9.2-p290

Rails 3.0.9

我的系统:

Windows 7,x64

我的路径与接受的答案略有不同。

我的c:/ ImageMagick

gem install rmagick --platform=ruby -- --with-opt-lib=c:/ImageMagick/lib --with-opt-include=c:/ImageMagick/include

我首先安装了Ruby并检查了所有选项,然后选中了“关联路径选项”和“标题”的ImageMagick。

然后轻松设置devkit:

1) cd c:\DevKit
2) ruby dk.rb init
3) ruby dk.rb install

然后在devkit(c:/ devkit)内部执行此操作并安装时没有错误:

gem install rmagick --platform=ruby -- --with-opt-lib=c:/ImageMagick/lib --with-opt-include=c:/ImageMagick/include

如果你还有问题,那么这可能对你有帮助,我试过这个但是我不熟悉设置环境并让第5步工作:http://www.waydotnet.com/blog/2010/02/rmagick-on-ruby-1-9-1-i386-mingw32-work-d/

我认为第5步可以改为我在Devkit中所做的事情,尝试一下,祝你好运!

答案 2 :(得分:1)

我很确定你在试图在Heroku上运行它时会遇到问题,因为RMagick只是作为一个与ImageMagick处理库接口的gem。 ImageMagick也需要安装在本地机器上,我不知道你能在Heroku上做什么。 ImageMagick安装包含您丢失的.dll。我在本地项目上经常使用它。这是链接:

http://www.imagemagick.org/script/binary-releases.php?ImageMagick=d1l695sitj9h0vdqs78vgebqc5#windows

我建议从上面的链接安装64位“静态”二进制文件。我遇到了一两个试图使用dll版本的问题。

无论如何下载它,安装它然后添加你的C:\ Program Files \ ImageMagick-6.5.6-Q8(或安装到你的任何地方)到PATH环境变量的路径。

然后您应该能够正确使用您的RMagick gem。

一切顺利。

答案 3 :(得分:1)

我按照这篇文章的步骤,但仍然有一些未定义的错误。如果这是你的情况,你可能想尝试安装32版本的imagemagick,尽管有64位操作系统。它对我有用。 您可以在此处详细了解:rmagick not building on windows 7 undefined reference errors