16 січня 2016 р.

Викорисатння ImageMagic у debug режимі. Qt5, C++.

Роблю собі нотатку.
Стала потреба тестувати С++ проект з середовища Qt5, де використовується API від проекту ImageMagic.

Якщо використати у режимі (debug)  Qt5 проект, то отримаємо помилки на кшталт цих:
Exception at 0x7ff9a2051f08, code: 0xe06d7363: C++ exception, flags=0x1
(execution cannot be continued) (first chance) in CORE_RL_Magick___!Magick::throwException "createIM Magick: unable to open module file `C:\\Users\\user\\.magick\\IM_MOD_RL_?\u0002?F?\u0001_.dll': No such file or directory @ warning/module.c/GetMagickModulePath/812"

Для вирішення проблеми я скомпілював ImageMagic. За інструкцією отримав VisualMagick проект для Visual Studio, там вибрав конфігурацію Debug.
Конфігурація Debug
Перекомпілював проект VisualDynamicMT
Отримав за шляхами:
libraries : ImageMagick-src-windows\ImageMagick-6.9.3-0\VisualMagick\lib
DLL: ImageMagick-src-windows\ImageMagick-6.9.3-0\VisualMagick\bin

ImageMagik DLL для Release мають вигляд CORE_RL, для Debug - CORE_DB
Відредагував файл проекту Qt project file .pro:

#ImageMagick Src 6.9.3-Q16

win32:CONFIG(release, debug|release): LIBS += -LD:\develop-tools\ImageMagick\ImageMagick-src-windows\ImageMagick-6.9.3-0\VisualMagick\lib -lCORE_RL_Magick++_ -lCORE_RL_magick_ -LCORE_RL_wand_
else:win32:CONFIG(debug, debug|release): LIBS += -LD:\develop-tools\ImageMagick\ImageMagick-src-windows\ImageMagick-6.9.3-0\VisualMagick\lib -lCORE_DB_Magick++_ -lCORE_DB_magick_ -LCORE_DB_wand_

Додатково. Для того щоб ImageMagik не шукав шляхи розміщення DLL у windows registry, а у теці проекту додав у
ImageMagick-src-windows\ImageMagick-6.9.3-0\ImageMagick\magick\magick-config.h:
#ifndef MAGICKCORE_INSTALLED_SUPPORT
#define MAGICKCORE_INSTALLED_SUPPORT
#endif

Немає коментарів:


Коли забув ти рідну мову, біднієш духом ти щодня...
When you forgot your native language you would become a poor at spirit every day ...

Д.Білоус / D.Bilous
Рабів до раю не пускають. Будь вільним!

ipv6 ready