opencv在Ubuntu下的编译及错误汇总

本文介绍如何在Linux环境下从源码编译OpenCV,并解决编译过程中可能出现的问题,如错误修正和依赖安装。同时,还提供了配置OpenCV库的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、编译

下载源码:http://pan.baidu.com/s/1c0xRuVm 

拷贝到linux下,解压,进入解压目录

$ mkdir release	
$ cd release
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..(确保你已安装cmake,如果没有请安装)
$ make                   (这个过程可能会出错,错误及处理方法)
$ sudo make install
$ sudo ldconfig
详细编译过程参见:

http://code.google.com/p/qt-opencv-multithreaded/wiki/Documentation

二、编译遇到的问题及解决办法

1、error: 'ptrdiff_t' does not name a type

make的时候出现error: 'ptrdiff_t' does not name a type造成编译错误,这个也是我搞来很多次没有成功只好选择系统库中自带的opencv。具体原因是没有加一个命名空间。只要在cxcore.hpp的命名空间地方加入

[cpp]  view plain copy
  1. using std::ptrdiff_t;  
加入cxcore.hpp的位置在要根据你编译的时候出现的错误的位置来确定。cxcore.hpp路径在  /include/opencv/cxcore.hpp

2、Link error undefined reference to `cvCreateCameraCapture_V4L(int)

首先更改/opencv/src/highgui/cvcap_v4l.cpp 

 205行

#if !defined WIN32 && defined HAVE_CAMV4L
替换为
#if !defined WIN32 && (defined HAVE_CAMV4L || defined HAVE_CAMV4L2)

如果问题没有解决在 cvconfig.h中(opencv/release

增加

#define HAVE_CAMV4L

3、linux/videodev.h: No such file or directory

$ sudo apt-get install libv4l-dev

来安装的,注意这里是 libv4L 而不是 libv41;

可是,现在你继续安装,依然会出现上述错误。这是由于这样安装的 libv4L 库把头文件名称改为

/usr/include/libv4l1-videodev.h

等。知道了原因,解决办法也很简单,只需要把出错这行代码的 #include 头文件改掉,即把文件

/modules/highgui/src/cap_v4l.cpp

第 217 行左右的

#include <linux/videodev.h>

代码,改为下面这行

#include <libv4l1-videodev.h>

参考文章:
https://code.ros.org/trac/opencv/ticket/324
http://blog.youkuaiyun.com/r91987/article/details/6849730
</pre><pre code_snippet_id="416317" snippet_file_name="blog_20140704_12_3442033" class="src src-c++" name="code" style="white-space: pre-wrap; font-size: 14px; background-color: rgb(255, 255, 255); word-wrap: break-word; line-height: 26px;">三、配置opencv库
首先打开<span style="font-family: 'Microsoft YaHei', SimSun, Verdana, Arial, Helvetica, sans-serif; line-height: normal; white-space: normal;">sudo vi /etc/ld.so.conf.d/opencv.conf</span><span style="font-family: 'Microsoft YaHei', SimSun, Verdana, Arial, Helvetica, sans-serif; line-height: 1.5; white-space: normal;">打开后可能没有内容,添加</span>
<pre style="white-space: normal; line-height: normal;">/usr/local/lib
sudo ldconfig使库文件生效
配置另一个文件sudo gedit /etc/bash.bashrc
增加 PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
 
export PKG_CONFIG_PATH
配置好之后source 一下就可以使用了
 
参考:http://www.samontab.com/web/2010/04/installing-opencv-2-1-in-ubuntu/
Qt Opencv 在Linux下摄像头简单示例v1.0 
http://blog.chinaunix.net/uid-24641004-id-3459705.html


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值