ImageMagick - "CORE_RL_magick_.dll не найден" или как установить RMagick на окна с ruby ​​1.9.2

Я работаю над приложением Rail3. После нескольких часов работы и, наконец, установки rmagick 2.13.1 gem без ошибок на win7x64/ruby ​​1.9.2, я столкнулся с другой ошибкой. Да, я слышал, что рельсы в окнах могут быть больными...

Я использую несущую волну для обработки и загрузки изображений в 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 не пропадает!

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 У меня нет, есть ли какие-нибудь другие камни и/или графические библиотеки, которые поддерживаются обоими окнами и героем?
  • else Возможно, есть способ настроить несущую, а не обрабатывать изображения в среде dev.

До сих пор я пробовал ImageMagick v 6.6.9 32bit dll, что дает ошибку dll CORE_RL, 64-битный статический, который не имеет заголовков dev для компиляции rmagick gem, и 64-битная динамика, которая дает мне тонны ошибок 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...

Спасибо всем.

Ответы

Ответ 1

Наконец-то мне удалось установить ImageMagick и создать жемчужину RMagick и заставить все это работать. Hooray.

Похоже, проблема была в самой DLL. Когда я попытался зарегистрировать его, окна дали мне хорошую ошибку о проблеме с dll.

Итак, мой способ решить все проблемы:

  • Go здесь
  • Загрузите ImageMagick 6.6.1-10 32bit динамическую или любую другую версию , кроме последней версии 6.6.9, которая имеет некоторые проблемы с DLL
  • Установите его с опциями: добавьте в PATH и заголовки разработки. Путь установки не должен содержать пробелы. После установки он должен предоставить вам окно с сообщением о успешной регистрации dll.
  • В командной строке введите convert -version, чтобы проверить, все ли работает. Он должен печатать что-то вроде:

    Версия: ImageMagick 6.6.1-10 2010-05-15 Q16 http://www.imagemagick.org Авторское право: Авторское право (C) 1999-2010 ImageMagick Studio LLC Особенности: OpenMP

  • Установите DevKit, если вы еще этого не сделали.

  • Установите 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, если вы все еще не можете установить

Ответ 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, попробуйте и удачи!

Ответ 3

Я уверен, что у вас возникнут проблемы с попыткой запустить ее на Heroku, потому что RMagick просто выступает в качестве жемчужины для взаимодействия с библиотеками обработки ImageMagick. ImageMagick также должен быть установлен на локальной машине, и я не знаю, что вы сможете сделать на Heroku. Установка ImageMagick содержит отсутствующий .dll, который вы используете. Я использую его довольно часто в локальном проекте. Здесь ссылка:

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

Я бы рекомендовал установить 64-битный "статический" двоичный файл из приведенной выше ссылки. Я столкнулся с проблемой или двумя попытками использовать версию dll.

Anyways загрузите его, установите, а затем добавьте свой C:\Program Files\ImageMagick-6.5.6-Q8 (или куда ваш установлен) путь к вашей переменной среды PATH.

Затем вы должны правильно использовать свой RMagick gem.

Все самое лучшее.

Ответ 4

Я выполнил шаги на этом посту, но все еще получил ошибку undefined. Если это ваш случай, вы можете попробовать установить 32-разрядную версию imagemagick, несмотря на наличие 64-разрядной операционной системы. Это сработало для меня. Подробнее об этом можно прочитать здесь: rmagick не строить на windows 7 undefined ссылочные ошибки