Интеграция LLRP с QT выдает ошибку «Пропуск несовместимого /path/libltkcpp.a при поиске -lltkcpp» - PullRequest
0 голосов
/ 20 февраля 2019

Я пишу приложение на QT Creator с C ++ для чтения RFID-тегов по протоколу LLRP.

Я использую example.cpp, предоставленный на сайте llrp.org, при попытке скомпилировать кодвыдает следующую ошибку -

:-1: error: /home/project/RFID/lib/libltkcpp.a: Timestamp out of range; substituting 1970-01-01 05:30:00
:-1: error: skipping incompatible /home/project/RFID/lib//libltkcpp.a when searching for -lltkcpp
:-1: error: cannot find -lltkcpp
:-1: error: skipping incompatible /home/project/RFID/lib//libxml2.a when searching for -lxml2
:-1: error: collect2: error: ld returned 1 exit status

Я добавил библиотеки - libltkcpp.a, libltkcpp_r.lib, libxml2.a в мой проект.Тем не менее проблемы идут.Есть идеи, что здесь не так?

Среда разработки - 64-битная CentOS.

1 Ответ

0 голосов
/ 20 февраля 2019

Прежде всего, вам нужен файл pro , который выглядит следующим образом:

CONFIG -= qt
CONFIG -= app_bundle

SOURCES += \
    /some-path-to-the-example/example1.cpp

LIBS += -L/some-path-to-the-libraries -lltkcpp -lxml2
INCLUDEPATH  += /some-path-to-the-library-headers

Затем вы либо создаете новый Qt Creator Kit, в котором вы используете linux-g ++-32 в качестве Qt mkspec и сконфигурировать проект для его использования;

или, в качестве альтернативы, используйте существующий набор, но добавьте -spec linux-g++-32 в качестве дополнительного аргумента для qmake в проекте Build Steps.

Запустите qmake, rebuild и проблемы с компоновщикомдолжен уйти.

Тем не менее, вы можете столкнуться с некоторыми жалобами компилятора на отсутствующие заголовки, и в этом случае вам, скорее всего, понадобится установить 32-битные библиотеки разработки.

В Ubuntu задача выполнена при установке gcc-7-multilib и g++-7-multilib пакеты.

Про CentOS я точно не знаю.Я надеюсь этот пост, связанный с красной шляпой поможет вам.

...