Сборка MuPdf и регистрация обработчиков документов

Здесь у нас есть вопрос, ответ и несколько счастливых людей.

Но у меня другая ситуация, я пишу на C++ и собираюсь сам собрать MuPdf. Итак, когда я добавляю функцию fz_register_document_handlers перед fz_open_document_with_stream, я получаю 5 неразрешенных внешних символов для этих

_opj_image_destroy (2 times)
_opj_copy_image_header
_opj_image_comp_header
_opj_image_create

Я могу избавиться от 3 из них, связав openjpeg\libopenjpeg\image.c, но _opj_image_destroy есть в моем списке ошибок компиляции!

[ОБНОВЛЕНИЕ]

Версия Mupdf: 1.6
Я не знаю, правильно это или нет, но я создал проект визуальной студии под названием Native, поместил в него исходный код Mupdf и попытался скомпилировать.
Затем я использую это заголовок в другом проекте С++ (и использование в нем объявления "C") и связанный с ним Native.
Он отлично работает, пока я не попытаюсь открыть файл как поток, а не адрес файла.
Итак, мой проект завершился с ошибкой: "Нет зарегистрированных обработчиков документов".
Эта ошибка вызвана файлом document.c.

Я искал и нашел страницу, на которую была ссылка выше, и я изменил источник.
После этого изменения появились ошибки компиляции!

Спасибо за помощь и извините за мой английский...


person Amir    schedule 01.02.2015    source источник


Ответы (1)


Во-первых, вы не сказали, какую версию MuPDF вы используете. Я предполагаю, что вы используете последнюю версию git (в настоящее время 1.6 по состоянию на 1 февраля 2015 года).

Во-вторых, вы не рассказали нам ничего полезного о том, как вы собираете MuPDF. Не зная точно, что вы изменили, трудно предположить, что вы делаете неправильно.

Если вы компилируете файлы vanilla .c с помощью компилятора C++, вам, вероятно, потребуется выполнить некоторую обертку файлов с объявлениями extern "C".

Свяжитесь с нами на irc-канале #ghostscript и расскажите нам больше.

[Обновлять]

Мне кажется, что вам не хватает декодера openjpeg. Вы не можете просто добавить один файл из исходного кода openjpeg и ожидать, что он волшебным образом заработает.

Почему вы создаете свой собственный проект Visual Studio, если мы уже предоставляем его вам? платформа/win32/mupdf.sln

person Robin Watts    schedule 02.02.2015