Магия ++ NoDecodeDelegateForThisImageFormat

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

У меня есть программа, которая использует Magick++ и отлично работает на моем ПК, но она не работает на другом компьютере, где я пытаюсь запустить код. Минимальный пример:

#include <iostream>
#include <Magick++.h>

int main(){
    Magick::Image im;
    im.read( "/fullpathtoimage.jpg" );
    std::cout<< im.columns() <<"\n";
    return 0;
}

(где, конечно, "/fullpathtoimage.jpg" является допустимым изображением).

Это вызывает исключение:

terminate called after throwing an instance of 'Magick::ErrorMissingDelegate'
  what():  ImageMagick: NoDecodeDelegateForThisImageFormat `/fullpathtoimage.jpg' @ constitute.c/ReadImage/503
Aborted

Другие сообщения об этой проблеме в основном говорят, что у них нет делегатов для jpeg, и они должны установить libjpeg и т. Д., Но они получали те же ошибки при запуске 'convert'. Тем не менее, когда я делаю

./convert /fullpathtoimage.jpg temp.png

Работает отлично. дела

./identify -list configure

списки, среди прочего

DELEGATES      bzlib mpeg fontconfig freetype jng jpeg pango png ps x xml zlib
LIBS           -lfreetype -ljpeg -lpng12 -lfontconfig -lXext -lXt -lSM -lICE -lX11 -lbz2 -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -lglib-2.0 -lxml2 -lz -lm

а также

./identify -list format | grep JPEG

дает

  JNG* rw-   JPEG Network Graphics
 JPEG* rw-   Joint Photographic Experts Group JFIF format (62)
PJPEG* rw-   Joint Photographic Experts Group JFIF format (62)

Итак, все вроде нормально, все двоичные файлы работают, просто мой код не работает.

Я установил версию ImageMagick-6.8.7-8, я собрал ее из исходных кодов, поскольку у меня нет root-прав на компьютере, и я установил ее в своем доме (используя./configure --prefix=/ Главная/...). Я проверил, может быть, есть проблема со связыванием моей программы с неправильным ImageMagick (так как есть и более старая системная), но ldd показывает, что все в порядке, т.е. программа связана с той, которую я установил, как я хотел, и запустил ldd на convert показывает, что он связан с точно такими же библиотеками.

0 ответов

Другие вопросы по тегам