1

我正在使用 C++ 在 QT Creator 上编写一个应用程序,以通过 LLRP 协议读取 RFID 标签。

我正在使用 llrp.org 站点中提供的 example.cpp,在尝试编译代码时,它会引发以下错误 -

:-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。

4

1 回答 1

1

首先,您需要一个如下所示的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在项目 Build Steps 中添加作为 qmake 的附加参数。

运行 qmake,重建,链接器问题应该消失了。

然而,您可能会遇到一些关于缺少头文件的编译器投诉,在这种情况下,您很可能需要安装 32 位开发库。

在 Ubuntu 上,任务已完成安装gcc-7-multilibg++-7-multilib软件包。

关于 CentOS,我真的不确定。我希望这篇与 red hat 相关的帖子能帮助您度过难关。

于 2019-02-20T15:34:45.607 回答