我是靠谱客的博主 直率小虾米,最近开发中收集的这篇文章主要介绍Linux_Qt:-1: error: cannot find xxx/lib: file format not recognized,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
给QT工程 pro文件添加zmq的项目lib时,编译出现:
:-1: error: cannot find /opt/toolschain/zeroMQ/zeromq_gcc/lib: file format not recognized
原因是qt无法识别lib目录下的部分lib库文件格式
可以使用“ll”或者“ls -al”命令查看文件的指向类型
从图中可以看出libzmq.so.5.0.0是libzmq.so和libzmq.so.5的软连接
所以libzmq.so.5.0.0是非.so文件,所以qt在加载lib目录时会把目录下的所有文件当成lib文件,不会以后缀名。
它是一个描述文件,和la一样,la是libtool生成的描述文件,用于描述告诉GNU的编译器该在不同的平台下使用或生成不同的静态库以及动态库,因为不同的平台,所使用的库格式不同。
所以我们只需要把libzmq.so.5.0.0删除还有libzmq.la,同时pkgconfig是生成的配置目录,也可以删除
这样就可以完美编译通过了。
值得注意的是,如果你的库目录下的库文件是32位的,你的qt程序是64位的那么也是无法通过的也会报这个错误
如果不想删除软连接,可以直接在pro文件里把.so文件路径给出来就可以了:
LIBS += /opt/toolschain/zeroMQ/zeromq_gcc/lib/libzmq.so
lib目录下只包含lib文件,其余的不要包含!
最后
以上就是直率小虾米为你收集整理的Linux_Qt:-1: error: cannot find xxx/lib: file format not recognized的全部内容,希望文章能够帮你解决Linux_Qt:-1: error: cannot find xxx/lib: file format not recognized所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复