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文件,其他的不要包含!

相關文章
相關標籤/搜索