簡體   English   中英

ImageMagick - “CORE_RL_magick_.dll not found” or how to install RMagick on windows with ruby 1.9.2

[英]ImageMagick - “CORE_RL_magick_.dll not found” or how to install RMagick on windows with ruby 1.9.2

我正在開發 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
...

當我在我的開發機器上觸發文件上傳時,它會彈出一個 windows 彈出窗口,說

CORE_RL_magick_.dll 未找到

谷歌在這方面並沒有真正的幫助。

我將我的 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

所以我有幾個問題。

  1. 我該如何解決這個問題?
  2. 否則,是否還有其他受elseif和 heroku 支持的 gem 和/或圖形庫?
  3. else也許有一種方法可以配置載波,而不是在開發環境中處理圖像

So far I've tried ImageMagick v 6.6.9 32bit dll, which gives the CORE_RL dll error, 64 bit static, which doesn't have dev headers to compile the rmagick gem, and 64 bit dynamic, which gives me tonns of undefined reference gem編譯期間的錯誤,每個測試,除了第一個:

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在這里

  2. 下載 ImageMagick 6.6.1-10 32 位動態或除當前最新版本 6.6.9 之外的任何其他版本,其中存在一些 DLL 問題

  3. 使用選項安裝它:添加到 PATH 和開發標頭。 安裝路徑不應包含空格 安裝后它應該會給你一個關於 dll 注冊成功的消息框。

  4. 在命令行中輸入 convert -version 來檢查是否一切正常。 它應該打印如下內容:

    Version: ImageMagick 6.6.1-10 2010-05-15 Q16 http://www.imagemagick.org Copyright: Copyright (C) 1999-2010 ImageMagick Studio LLC Features: 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...

就是這樣。 希望這可以避免有人在沮喪中浪費幾個小時。

還有兩個有用的鏈接: 12 ,如果您仍然無法安裝

安裝起來很痛苦。 此時此刻,我不得不重新安裝 Ruby、Rails、Devkit 和 ImageMagick。 你最好的辦法是做同樣的事情,go 除了 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 中所做的,試一試,祝你好運!

我按照這篇文章的步驟進行操作,但仍然遇到很多未定義的錯誤。 如果您也是這種情況,您可能想嘗試安裝 32 版本的 imagemagick,盡管您擁有 64 位操作系統。 它對我有用。 你可以在這里閱讀更多相關信息: rmagick not build on windows 7 undefined reference errors

我很確定您在嘗試在 Heroku 上運行它時也會遇到問題,因為 RMagick 只是充當與 ImageMagick 處理庫接口的寶石。 ImageMagick 也需要安裝在本地機器上,我不知道你能在 Heroku 上安裝。 ImageMagick 安裝包含缺少的.dll 您所追求的。 我在本地項目中經常使用它。 這是鏈接:

關聯

我建議從上面的鏈接安裝 64 位“靜態”二進制文件。 我在嘗試使用 dll 版本時遇到了一兩個問題。

無論如何下載它,安裝它,然后將您的 C:\Program Files\ImageMagick-6.5.6-Q8 (或安裝到您的任何位置)路徑添加到您的 PATH 環境變量。

然后您應該能夠正確使用您的 RMagick gem。

一切順利。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM