ImageMagick – “找不到CORE_RL_magick_.dll”或如何在Windows上安装RMagick 1.9.2

我正在开发一个Rail3应用程序。 经过几个小时的苦苦挣扎,终于在win7x64 / ruby​​ 1.9.2上安装了rmagick 2.13.1 gem没有错误,我遇到了另一个错误。 是啊,我听说在Windows中的铁轨体验可能是痛苦的…

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

class IconUploader < CarrierWave::Uploader::Base require 'rmagick' include CarrierWave::RMagick ... process :resize_to_fit => [100, 100] process :convert => :png ... 

当我在我的开发机器上触发file upload时,会popup一个窗口popup窗口,说

找不到CORE_RL_magick_.dll

谷歌对这一个并不是很有帮助。

我有我的PATHvariables设置为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我不知道,是否有任何其他的gem和/或graphics库,由Windows和Heroku支持?
  3. else也许有一种方法来configurationcarrierwave,而不是在开发环境中处理图像

到目前为止,我已经尝试了ImageMagick v 6.6.9 32位dll,它给出了CORE_RL dll错误,64位静态,没有dev头文件来编译rmagick gem,还有64位dynamic的,这给我带来了undefined reference在gem编辑过程中的错误,除了第一个testing外,

 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... 

感谢大家。

我终于设法安装了ImageMagick,并构建了RMagick的宝石,并使其一切工作。 万岁。

这似乎是在DLL本身的问题。 当我试图注册时,窗口给了我一个关于DLL的问题一个很好的错误。

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

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

    版本:ImageMagick 6.6.1-10 2010-05-15 Q16 http://www.imagemagick.org版权所有:Copyright(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

它应该打印

 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... 

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

只有两个有用的链接: 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-上红宝石1-9-1-I386-mingw32的工作-d /

第5步我相信可以改成我在Devkit里面做的,而是试试看,祝你好运!

我敢肯定你会碰到试图在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。

祝一切顺利。

我遵循这个帖子的步骤,但仍然有很多未定义的错误。 如果这是你的情况,你可能想尝试安装32位版本的imagemagick,尽管有一个64位的操作系统。 它为我工作。 你可以在这里阅读更多关于它: rmagick不建立在Windows 7未定义的参考错误