Linux_Qt:-1: error: cannot find xxx/lib: file format not recognized

给QT工程 pro文件添加zmq的项目lib时,编译出现:code

:-1: error: cannot find /opt/toolschain/zeroMQ/zeromq_gcc/lib: file format not recognized

缘由是qt没法识别lib目录下的部分lib库文件格式orm

能够使用“ll”或者“ls -al”命令查看文件的指向类型blog

从图中能够看出libzmq.so.5.0.0是libzmq.so和libzmq.so.5的软链接编译器

因此libzmq.so.5.0.0是非.so文件,因此qt在加载lib目录时会把目录下的全部文件当成lib文件,不会之后缀名。qt

它是一个描述文件,和la同样,la是libtool生成的描述文件,用于描述告诉GNU的编译器该在不一样的平台下使用或生成不一样的静态库以及动态库,由于不一样的平台,所使用的库格式不一样。编译

因此咱们只须要把libzmq.so.5.0.0删除还有libzmq.la,同时pkgconfig是生成的配置目录,也能够删除form

这样就能够完美编译经过了。class

 

值得注意的是,若是你的库目录下的库文件是32位的,你的qt程序是64位的那么也是没法经过的也会报这个错误gcc

若是不想删除软链接,能够直接在pro文件里把.so文件路径给出来就能够了:配置

LIBS += /opt/toolschain/zeroMQ/zeromq_gcc/lib/libzmq.so

 

lib目录下只包含lib文件,其他的不要包含!

相关文章
相关标签/搜索