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 ссылочные ошибки