ubuntu上面编译并使用OpenCV

来源:互联网 发布:网络排名优化方案 编辑:程序博客网 时间:2024/06/04 18:28

        最近学习QT及OpenCV的使用,所以尝试下载了OpenCV,并且按照网上教程编译。首先我下载的是OpenCV2.2编译的时候出现了好多问题。先说一下我的编译方法参考http://blog.csdn.net/moc062066/article/details/6617968。不过这里我在cmake-gui中取消with_tiff与with_FFMPEG 。 

       编译是好多错误,Opencv2.2与OpenCV出现错误差不多:

        1、error: ‘ptrdiff_t’ does not name a type   

             解决:加入include目录下的cxcore.hpp   上面加上命名空间 using std::ptrdiff_t;

        2、OpenCV: undefined reference to `cvCreateCameraCapture_V4L(int)

             解决:http://blog.chinaunix.net/uid-23381466-id-3828667.html

       3、错误/opt/OpenCV-2.1.0/tests/ml/src/slmltests.cpp:104:20: error: ‘unlink’ was not declared in this scope

            解决:在每个错误文件上加上头文件:#include <unistd.h>

        后来转战到OpenCV2.4.2,这个版本的编译就简单多了,按照之前的办法,我在cmake-gui中取消with_tiff与with_FFMPEG。

       在Qt中使用OpenCV是需要添加头文件及库路径,比如我是放在/usr/local/include /usr/local/lib这两个路径下,则在工程的pro文件中添加如下内容:

INCLUDEPATH +=  /usr/local/include/opencv \
                /usr/local/include/opencv2

LIBS += /usr/local/lib/lib*


注意,库没有添加成功的话会出现很多如下错误:

cameradialog.cpp:(.text+0x15):对‘vtable for CameraDialog’未定义的引用

cameradialog.cpp:(.text+0x28):对‘cvReleaseCapture’未定义的引用

cameradialog.o:在函数‘CameraDialog::CameraDialog(QWidget*)’中:

cameradialog.cpp:(.text+0xcb):对‘vtable for CameraDialog’未定义的引用

cameradialog.cpp:(.text+0xd2):对‘vtable for CameraDialog’未定义的引用

cameradialog.cpp:(.text+0x2e5):对‘cvCreateCameraCapture’未定义的引用


0 0