我是靠谱客的博主 直率小虾米,最近开发中收集的这篇文章主要介绍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所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(55)

评论列表共有 0 条评论

立即
投稿
返回
顶部