我正在开发一款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:/ ruby192 / 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
所以我有几个问题。
elseif
我没有,是否还有Windows和heroku都支持的其他宝石和/或图形库?else
也许有办法配置carrierwave,而不是在开发环境中处理图像到目前为止,我已经尝试了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...
谢谢大家。
答案 0 :(得分:18)
我终于设法安装ImageMagick并构建RMagick gem并使其全部工作。万岁。
似乎问题出在DLL本身。当我试图注册它时,windows给了我一个关于dll问题的错误。
所以我解决所有问题的方法是:
在命令行中输入convert -version来检查一切是否正常。它应该打印如下:
版本:ImageMagick 6.6.1-10 2010-05-15 Q16 http://www.imagemagick.org 版权:版权所有(C)1999-2010 ImageMagick Studio LLC 功能:OpenMP
如果您还没有安装DevKit。
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-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