我正在用C++在QT上编写一个应用程序,通过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。
发布于 2019-02-20 15:34:45
首先,您需要一个如下所示的专业文件:
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,其中使用linux-g++-32作为Qt,然后配置项目来使用它;
或者,作为替代,使用现有的工具包,但是在项目构建步骤中添加-spec linux-g++-32作为qmake的附加参数。
运行qmake,重新构建,链接器问题就会消失。
然而,您可能会遇到一些编译器抱怨头丢失的问题,在这种情况下,您很可能需要安装32位开发库。
在Ubuntu上,完成了安装gcc-7-multilib和g++-7-multilib包的任务。
关于CentOS,我真的不太确定。我希望this red hat related post能帮你渡过难关。
https://stackoverflow.com/questions/54785987
复制相似问题