Ошибки при линковке в Qt5 с попплером

/usr/lib/libpoppler.so.50: неопределенная ссылка на std::__throw_out_of_range_fmt(char const*, ...)@GLIBCXX_3.4.20'
Makefile:156: recipe for target 'DocViewer' failed
/usr/lib/libsystemd.so.0: undefined reference to
lzma_stream_decoder@XZ_5.0′
/usr/lib/libQt5Core.so: неопределенная ссылка на __cxa_throw_bad_array_new_length@CXXABI_1.3.8'
/usr/lib/libsystemd.so.0: undefined reference to
lzma_end@XZ_5.0′
/usr/lib/libsystemd.so.0: неопределенная ссылка на `lzma_code@XZ_5.0 ‘
collect2: error: ld вернул 1 состояние выхода
make: *** [DocViewer] Ошибка 1
20:53:35: Процесс «/ usr / bin / make» завершился с кодом 2.

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

Ниже файл моего проекта, должен ли что-то изменить?

QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = DocViewer
TEMPLATE = app

INCLUDEPATH  += /usr/include/poppler/qt5
LIBS         += -L/usr/lib -lpoppler-qt5

SOURCES += main.cpp\
mainwindow.cpp

HEADERS  += mainwindow.h

FORMS    += mainwindow.ui

1

Решение

Для ошибки «__cxa_throw_bad_array_new_length@CXXABI_1.3.8» в libicu похоже, что проблема в несовместимой сборке icu (softfp vs hardfp).

У меня была та же самая ошибка, которую я решил, загрузив восстановленный ICU (чтобы избежать восстановления его самостоятельно).

  • Загрузите двоичные файлы «POT» из
    http://thebugfreeblog.blogspot.fr/2016/12/binaries-for-pot-550-beta1-on-qt-580.html.
  • лрзунтар файл
  • tar xf qtdeps.tar
  • на устройстве удалите libicu * (в моем случае с raspbian это было в usr / lib / arm-linux-gnueabihf) и перенесите libicu * из qtdeps туда
  • на устройстве удалите «unicode» include dir (с raspbian он был в / usr / include / arm-linux-gnueabihf / unicode) и скопируйте туда unicode include dir из qtdeps.
  • повторная синхронизация с устройства в системный корень с помощью rsync
  • перенастроить и перестроить qtbase (после удаления файлов .o в qtbase / src / corelib, которые содержат «icu» в имени — или перестроить Qt с нуля)
0

Другие решения


По вопросам рекламы [email protected]