Как настроить библиотеку poppler в Qt для встроенного устройства?

Цель состоит в том, чтобы показать pdf-файлы на моей целевой => плате imx6 + дисплей. ОС моего хоста - Linux. Пока что у меня есть программа, написанная на Qt 5. Она отлично компилируется, и я вижу ее на дисплее.

Чтобы показать некоторые PDF-файлы, я хотел бы использовать библиотеку poppler. Проблема в том, что я не могу это сделать. Правильно ...

Мои шаги до сих пор: я сделал базовую установку poppler, как это описано в файле INSTALL.

сборка mkdir

сборка компакт-диска

сделай ..

сделать

сделать установку

затем добавил

INCLUDEPATH += /home/user/poppler/include/poppler/qt5 LIBS += -L"/home/user/poppler/lib" -lpoppler-qt5

в мой .pro файл

и #include <poppler-qt5.h> в мой файл .cpp.

И результат при запуске такой:

/home/user/poppler/lib/libpoppler-qt5.so:-1: ошибка: файл не распознан: формат файла не распознан

:-1: ошибка: collect2: ошибка: ld вернул 1 статус выхода

Теперь у меня есть только две идеи. Первый — это кросс-компиляция исходного кода poppler. (Я пробовал это с файлом набора инструментов, но не смог :'D) Вторая идея - поместить библиотеку в Qt вместе с моим проектом и скомпилировать ее там - может быть, это сработает. Я просто не знаю как. Помощь.

Я также открыт для чего-то еще, чем poppler - я просто хочу показать PDF-файлы.


person Milo    schedule 21.12.2017    source источник


Ответы (1)


Проблема здесь в том, что вы каким-то образом компилируете проекты Qt для ARM, используя соответствующую цепочку инструментов, sysroot и ABI, и вы не можете просто ссылаться на библиотеки, которые вы скомпилировали, скажем, для x86_64, потому что они просто бинарно несовместимы.

В очень удачном случае вам удалось настроить Creator для кросс-компиляции, просто создайте проект Creator для библиотеки poppler, используя cmake, и настройте проект с тем же набором, который вы используете для приложений imx6. Как только вы создадите его для ARM, вы можете правильно связать его в своем приложении, указав полный путь к LIBS в файле .pro.

Если вместо этого вы используете Yocto, просто сделайте рецепт поплера. В случае, если вы не, может быть, вы должны.

person p-a-o-l-o    schedule 21.12.2017
comment
Я использую Йокто. Но я новичок в этом, и я понятия не имею, что такое рецепт. .. Но я хотел бы научиться. - person Milo; 21.12.2017
comment
Попробуйте пройти по ссылке, которую я дал. Если вам удалось кросс-компилировать qt, вы уже почти эксперт :) - person p-a-o-l-o; 21.12.2017