linux下qt配置的opencv出现libopencv_calib3d.so: file not recognized: File format not recognized

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux下qt配置的opencv出现libopencv_calib3d.so: file not recognized: File format not recognized相关的知识,希望对你有一定的参考价值。

linux下qt配置的opencv出现/usr/local/lib/libopencv_calib3d.so: file not recognized: File format not recognized等库文件连接不上,按照网上教程安装,结果出现这种情况

qmake配置如下
qt的.pro文件如下
QT += coreTARGET = opencvCONFIG += consoleCONFIG -= app_bundleCONFIG += link_pkgconfigPKGCONFIG += opencv
TEMPLATE = app
SOURCES += main.cpp
源文件如下
#include <cv.h>#include <highgui.h>
int main()IplImage *img = 0;img = cvLoadImage("qiaoba.jpg",-1);cvNamedWindow("qiaoba", 1);cvShowImage("lena", img);cvWaitKey(0);return 0;
求大神解救,已经弄了好久,网上找答案都不行!

这样的,我也碰到了这个问题,要不你打开这个QT中的Makefile文件,看下交叉编译器还有路径本身就是你在 qt IDE中设置的那样,可能交叉编译器都是gcc。PS:我改了Makefile文件但是还是有问题,但是我相信问题就是在这 参考技术A 同问,请问前辈们解决了吗? 参考技术B 陈年老帖了。我也遇到这个问题,请问怎么解决的呢,谢谢! 参考技术C libopencv_calib3d.so 文件有问题,可能这个并不是一个linux共享库,或者你下载的是另一种linux发行版的共享库,或者你的系统是32位,但是你用了64位的opencv追问

库本身应该没问题的,都是64位的,libopencv_calib3d.so连接到libopencv_calib3d.so.2.4.8是共享库也没错,而且

opencv独自编译能通过,make也能显示图片,在qt就不行,觉得应该是qt识别的问题?

参考技术D 前辈,请问问题解决了吗?我最近也出现这种问题,很烦躁

OpenCV在Ubuntu和Linux系统下的移植

1安装cmake-qt-gui:sodo apt-get install cmake-qt-gui

2. 配置cmake:

进入存放opencv2.4.10的文件夹,输入cmake-gui。进入如下界面,点击configure,选择最后一个,下一步

技术分享

技术分享

Finish之后勾选   如下两个:

技术分享

技术分享

技术分享

去掉如下两个:

技术分享

技术分享

再次点击configure,然后generate

进入/arm-opencv/  文件夹运行以下命令

make

成功之后运行

make install

 

3.配置opencv环境:

打开安装目录../arm-opencv/CmakeCache.txt。修改如下


技术分享

 

把arm-opencv/lib下所有文件复制到usr/local/lib下,arm-opencv/include下所有文件拷贝到usr/local/include下。如果没有权限,执行sudochown –R niostar /usr/local

 

注意/usr/local/lib/pkgconfig文件夹。在里面新建一个文件arm-opencv.pc

内容与arm-opencv/unix-install/opencv.pc一致。但注意复制后改为arm-opencv.pc这个名字

技术分享

4.更改变量

 

将文件/etc/ld.so.conf中添加一行代码/usr/local/lib

 


sudo gedit /etc/bash.bashrc 最后一行添加

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig

export PKG_CONFIG_PATH

 

5.编译。

测试程序如文件夹中test.cpp

 

编译命令如下

技术分享

arm-linux-g++ `pkg-config --cflags arm-opencv` `pkg-config--libs arm-opencv` test2.cpp -lpthread -lrt -ldl

 

6.ARM板测试运行

arm-opencv/整个文件夹拷贝到arm板的文件系统下,但是要求在ARM板下的路径与虚拟机路径一致。

 

 

运行测试程序,可以成功

#include <cv.h>  
#include <cxcore.h>  
#include <highgui.h>  
      
      
int main(int argc,char **argv)  
{  
    CvCapture* capture = NULL;  
    IplImage* pImg = NULL; 
    IplImage* pImg1 = NULL; 
    fprintf(stderr, "123");   
    pImg = cvLoadImage("lena.jpg",1);
     fprintf(stderr, "456");  
    pImg1 = cvCreateImage(cvSize(pImg->width,pImg->height),IPL_DEPTH_8U,1);
   fprintf(stderr, "456");  
    cvCvtColor(pImg,pImg1,CV_RGB2GRAY);
     fprintf(stderr, "789");   

   cvSaveImage("1_1.jpg",pImg1);

    fprintf(stderr, "109");  
    

    

    cvReleaseImage( &pImg );   
    cvReleaseImage( &pImg1 );   
    return 0;  
}

技术分享


技术分享




















以上是关于linux下qt配置的opencv出现libopencv_calib3d.so: file not recognized: File format not recognized的主要内容,如果未能解决你的问题,请参考以下文章

Linux(ubuntu)下配置Opencv3.1.0开发环境的详细步骤

Qt-Msvc2015配置opencv3.2的坑

OpenCV在Ubuntu和Linux系统下的移植

OpenCVWindows下Qt结合OpenCV的环境配置

Windows下配置QT OpenCV

Windows下 QT 配置OpenCv