ImageMagick - «CORE_RL_magick_.dll не найден» или как установить RMagick на windows с ruby ​​1.9.2 - PullRequest
12 голосов
/ 28 апреля 2011

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

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

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

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

Ответы [ 4 ]

18 голосов
/ 28 апреля 2011

Мне наконец-то удалось установить ImageMagick, собрать гем RMagick и заставить его все работать.Ура.

Кажется, проблема была в самой DLL.Когда я попытался зарегистрировать его, Windows выдала мне приятную ошибку о проблеме с 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 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 голосов
/ 03 сентября 2011

Это было больно, чтобы установить.Прямо сейчас, в этот момент, мне пришлось переустановить 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, попробуйте и удачи!

1 голос
/ 27 ноября 2013

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

1 голос
/ 28 апреля 2011

Я почти уверен, что вы столкнетесь с проблемами, пытаясь запустить его и на Heroku, потому что RMagick просто выступает в роли самоцвета для взаимодействия с библиотеками обработки ImageMagick. 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.

Всего наилучшего.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...