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

2024-03-26

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

我使用 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

谷歌在这方面并没有真正提供帮助。

我将 PATH 变量设置为 C:/ruby192/ImageMagick - 它是我安装 ImageMagick 的位置。这个文件夹有几个CORE_RL dll,包括magick one. DLL 本身并没有丢失!

irb > require 'rmagick'返回真 和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 支持的其他 gem 和/或图形库吗?
  3. else也许有一种方法可以配置载波,而不是在开发环境中处理图像

到目前为止,我已经尝试过 ImageMagick v 6.6.9 32 位 dll,它给出了 CORE_RL dll 错误, 64 位静态,没有用于编译 rmagick gem 的开发标头, 和 64 位动态,这给了我大量的undefined referencegem 编译期间的错误,每个测试(第一个除外):

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 gem 并使其一切正常工作。万岁。

看来问题出在 DLL 本身上。当我尝试注册它时,Windows 给了我一个关于 dll 问题的错误。

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

  1. Go here https://www.imagemagick.org/script/download.php#windows

  2. 下载ImageMagick 6.6.1-1032bit动态或任何其他版本目前最新版本 6.6.9 除外,该版本存在一些 DLL 问题

  3. 使用选项安装它:添加到 PATH 和开发标头。安装路径不能包含空格。 安装后,它应该会显示一个有关 dll 注册成功的消息框。

  4. 在命令行中输入 Convert -version 以检查是否一切正常。它应该打印如下内容:

    版本:ImageMagick 6.6.1-10 2010-05-15 Q16http://www.imagemagick.org http://www.imagemagick.org版权所有:版权所有 (C) 1999-2010 ImageMagick Studio LLC 特点:开放MP

  5. 安装DevKit https://github.com/oneclick/rubyinstaller/wiki/development-kit如果你还没有。

  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 https://phosphor-escence.blogspot.com/2010/10/install-rmagick-on-mingw-and-msys.html and 2 https://phosphor-escence.blogspot.com/2010/12/if-you-fail-install-rmagick-on-mingw.html如果仍然无法安装

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ImageMagick - “未找到 CORE_RL_magick_.dll”或如何使用 ruby​​ 1.9.2 在 Windows 上安装 RMagick 的相关文章

随机推荐

  • FactoryGirl:填充具有许多关系的保留构建策略

    我的问题似乎很常见 但我没有在文档或互联网本身中找到任何答案 这似乎是这个问题的克隆has many 同时尊重factory girl 中的构建策略 https stackoverflow com questions 1506556 has
  • 有关使用 TortoiseGit 与 SVN 存储库交互的说明?

    多年来 我一直在 Windows 上使用 TortoiseSVN 为我自己的项目提供本地文件系统存储库 我计划开始与一位朋友合作开发其中一个项目 并将存储库转移到我自己的网站上 我读过很多 git 击败 SVN 的文章 过去几年的帖子 我想
  • 使用 helm 进行 Kubernetes 作业更新

    我有一个 Kubernetes 集群 我正在使用 Helm 在那里部署我的应用程序 一切工作正常 但一方面是工作更新 正如我所读到的 作业是不可变的 这就是它们无法更新的原因 但我不明白 为什么 helm 不像 Pod 那样创建新作业 最后
  • 在 .NET Core 项目中添加 PDF 链接

    我想将 PDF 文件添加到我的 net core 2 0 项目中 它在我的本地主机上使用 IIS Express 运行 我已经将 pdf 文件添加到我的项目文件中 它显示在解决方案资源管理器中 并且我在中添加了相应的链接我的 cshtml
  • HTML5视频播放器:动态加载视频

    那么 使用兼容 HTML 5 的视频播放器 如 Video JS 如何动态加载视频 而无需重新加载整个页面呢 想象一下 一个链接列表 类似于播放列表 每个链接都指向一个视频 单击链接时 我想将所选视频加载到播放器中 目前 我正在使用一个包含
  • 在vim中打开目录

    我是一名 mac 用户 正在认真尝试 vim 我习惯的大多数 GUI 编辑器都允许我通过执行以下命令来将目录作为 项目 打开 编辑 www example com vim 等效项vim www example com 将显示目录中的文件列表
  • 如何将 STDERR 重定向到 STDOUT,但忽略原始 STDOUT? [复制]

    这个问题在这里已经有答案了 我有一个程序STDERR我想要检查并运行的输出grep on etc 所以我可以将其重定向到STDOUT并使用 grep 但问题是 我这样做not想要原件STDOUT内容 所以 这个不行 cmd 2 gt 1 g
  • 为什么选择静态类而不是单例实现?

    静态与静态 单例问题之前在 SO 中已经讨论过很多次了 然而 所有的答案都指出了单例的许多优点 我的问题是 静态类比单例有什么优点 为什么不每次都简单地选择一个单例呢 静态类是你盒子里的一个技术工具 基本上是一个语言功能 Singleton
  • SQL聚合函数选择唯一值

    我有一个包含两列的行集 technical id and natural id 行集实际上是复杂查询的结果 假设列值之间的映射是双射的 即对于具有相同值的两行 technical id the natural ids 也相同 对于不同的te
  • iPhone 应用程序可以阻止电话吗?

    是否可以编写一个应用程序来阻止传入和传出的电话 还是 iPhone 被锁定太多了 谢谢 编辑 请参阅下面 Rajan Maheshwari 的回答 CallKit 现在提供了这一点 即使那些看似永远不会改变的事情 最终也可能会改变 任何修改
  • Django 从 postgres JSON 字段获取值

    我有一个简单的模型 例如 class MyModel models Model data JSONField JSON 字段data结构如下 name Brian skills id 4 name First aid id 5 name S
  • 如何删除 Visual Studio PIN TAB 图标(显然在选项卡上)

    有没有办法完全删除 Visual Studio 2010 中的 pin 选项卡选项 如何 我一直不小心点击它 我希望它消失 我从不使用它并且总是不小心点击它 thnx 附注右键单击 PIN 图标确实会弹出一些自定义对话框 但无法删除它 无法
  • SimpleHTTPServer 添加 default.htm default.html 到索引文件

    我总是用 python m SimpleHTTPServer对于快速本地静态 Web 测试 它非常适合index htm or index html作为索引文件 不过我需要使用default htm or default html对于我目前
  • Sequelize cli 模型创建

    我一直在尝试创建一个user model使用sequelize cli 但每当我插入更多参数 如主键和唯一 时 解析器就会失败 例如 npx sequelize model create name user attributes name
  • 通过序言格式化 csv 表?

    尽我所能 我无法弄清楚如何更改 sphinx 的 pdf 输出中的默认表格格式 我可以编辑 tex 文件或 writer py 源代码 但这两个似乎都是不好的选择 有什么东西可以通过序言来实现这一点吗 取决于您试图通过更改表格格式来完成的任
  • OWL 中表达式前面的列表?

    OWL 中表达式前面是否可以有一个列表 就像是 Dairy Egg Nut rdfs subClassOf FoodGroup or Dairy Egg Nut rdfs subClassOf FoodGroup 或者一般来说 是否存在针对
  • PHP 日期时间字符串区分

    在这两种情况下 我都可以从字符串创建日期对象 如下所示 dt strtotime 2013 04 19 17 00 00 or dt strtotime 10 hours 我需要一种方法来区分这两种日期类型 无论是相对数据字符串还是绝对数据
  • Windows 7 上的全屏 OpenGL 窗口打开的模态对话框不显示

    看来我的问题可能与未回答的相关问题相同 Windows 7 上出现 GLUT 的 OpenGL 全屏模式不显示消息框 https stackoverflow com questions 1842312 opengl with glut on
  • Ajax 追加加载

    它必须是jquery 我有文件 text html 其中有 6 个 div a b c d e f 在另一个文件中 我有一个 div 我喜欢它将 a b c d e f 的内容填充到该单个 div 中 我尝试过 load 但 b 替换了 a
  • ImageMagick - “未找到 CORE_RL_magick_.dll”或如何使用 ruby​​ 1.9.2 在 Windows 上安装 RMagick

    我正在开发 Rail3 应用程序 经过几个小时的努力 终于在 win7x64 ruby 1 9 2 上安装了 rmagick 2 13 1 gem 没有错误 我遇到了另一个错误 是的 我听说 Windows 中的 Rails 体验可能会很痛