1. 配置编译器环境

 [compiler] sudo apt-get install build-essential

2. 安装OpenCV的依赖包

 [required] sudo apt-get install cmake git libgtk2.-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
[optional] sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394--dev

3. cmkae 外部构建

mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE -D BUILD_TIFF=ON -D CMAKE_INSTALL_PREFIX=/usr/local ..

(注意:必须加上-D BUILD_TIFF=ON,否则编译caffe的时候会有这样的错误/usr/lib/libopencv_highgui.so.2.4: undefined reference to XXXXXX)

4. 安装在主机上

make -j8
sudo make install

5. CMakeLists.txt的写法

//OpenCV 检查程序

#include <cv.h>
#include <highgui.h> using namespace cv; int main(int argc, char* argv[])
{
Mat image;
image = imread(argv[], ); if (argc != || !image.data)
{
printf("No image data\n");
return -;
} namedWindow("Display Image", CV_WINDOW_AUTOSIZE);
imshow("Display Image", image);
waitKey();
return ;
}

在同一目录下创建CMakeLists.txt,并写入编译规则

CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
PROJECT(test)
FIND_PACKAGE(OpenCV REQUIRED)
ADD_EXECUTABLE(opencv_test main.cpp)
TARGET_LINK_LIBRARIES(opencv_tes ${OpenCV_LIBS})

之后利用CMakeLists.txt创建Makefile并完成实例构建

mkdir build
cd build
cmake ../
make

编译完成后,在build文件夹下会创建一个opencv_test的可执行文件

./opencv_test filename

运行文件,将会显示图片内容

6. 如果对makefile的规则不太熟悉,也可以直接配置gcc的编译选项

g++ main.cpp -Wl,-rpath=/usr/local/lib -I /usr/local/include/ -L /usr/local/lib -lopencv_core -lopencv_highgui -lopencv_imgproc -o opencv_test  

7.或者安装pkg-config并配置opencv可以避免重复配置opencv

sudo apt-get install pkg-config
sudo gedit ~/.bashrc #最后一行输入
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
#执行以下命令使配置立即生效
source /etc/profile #打开文件,配置opencv lib库路径
sudo gedit /etc/ld.so.conf.d/opencv.conf
#opencv的库一般安装在"/usr/local/lib"文件夹下,在文件内添加
/usr/local/lib #执行下列命令使之立刻生效
sudo ldconfig
g++ main.cpp -Wl,-rpath=/usr/local/lib 'pkg-config --libs opencv --cflags opencv' -o test //`不是单引号,而是数字1左边的`符号

注意,如果不添加-Wl, -rpath=/usr/local/lib, 编译是可以通过的,但是相对应的链接库并没有写入到可执行文件内,运行可执行文件时候,会遇到 ./test: error while loading shared libraries: libopencv_core.so.2.4: cannot open shared object file: No such file or directory的错误,虽然添加上了-I和-L和以保证编译成功,但是可执行文件仍然找不到需要连接的动态库。

OpenCV 2.4.13 installed in Ubuntu 14 and CMakeLists Demo的更多相关文章

  1. 【Android 系统开发】CyanogenMod 13.0 源码下载 编译 ROM 制作 ( 手机平台 : 小米4 | 编译平台 : Ubuntu 14.04 LTS 虚拟机)

                 分类: Android 系统开发(5)                                              作者同类文章X 版权声明:本文为博主原创文章 ...

  2. NVIDIA DIGITS 学习笔记(NVIDIA DIGITS-2.0 + Ubuntu 14.04 + CUDA 7.0 + cuDNN 7.0 + Caffe 0.13.0)

    转自:http://blog.csdn.net/enjoyyl/article/details/47397505?from=timeline&isappinstalled=0#10006-we ...

  3. ubuntu 16.04 安装opencv 2.4.13

    ubuntu 16.04 安装opencv 2.4.13 https://blog.csdn.net/u011557212/article/details/54706966?utm_source=it ...

  4. 30分钟groovy快速入门并掌握(ubuntu 14.04+IntelliJ 13)

    本文适合于不熟悉 Groovy,但想快速轻松地了解其基础知识的 Java开发人员.了解 Groovy 对 Java 语法的简化变形,学习 Groovy 的核心功能,例如本地集合.内置正则表达式和闭包. ...

  5. Ubuntu 14.04 下安装 OpenCV

    参考: Installation in Linux Error compiling OpenCV, fatal error: stdlib.h: No such file or directory 图 ...

  6. Ubuntu 14 中 VirtualBox发生错误Kernel driver not installed (rc=-1908)

    宿主系统是Ubuntu 14,在VirtualBox中安装 CentOS 6.5 时,提示如下错误: Kernel driver not installed (rc=-1908) 网友提供的解决方案: ...

  7. [2014.5.13][Ubuntu] Ubuntu 14.04STL 出现NTFS分区无法訪问的问题

    5.12 为了给学生改论文,在UPC上登录了Windows 8.1,晚上正常关机.今日切换登陆Ubuntu 14.04分区,发现原来能够正常訪问的windows下的NTFS分区都被锁死.提演示样例如以 ...

  8. Ubuntu 14.04上安装caffe

    本来实在windows 10上尝试安装caffe,装了一天没装上,放弃; 改在windows上装ubuntu的双系统,装了一个下午,不小心windows的系统盘被锁死了,也不会unlock?只好含泪卸 ...

  9. ubuntu 14.04 nagios4+ndoutils2.0+centreon2.5.4配置

    ubuntu 14.04 nagios4+ndoutils2.0+centreon2.5.4(原创) 开发应用centreon是开源的IT监控软件,由法国人于2003年开发,最初名为Oreon,并于2 ...

随机推荐

  1. 什么是 DDoS 攻击?

    欢迎访问网易云社区,了解更多网易技术产品运营经验. 全称Distributed Denial of Service,中文意思为“分布式拒绝服务”,就是利用大量合法的分布式服务器对目标发送请求,从而导致 ...

  2. CSS 属性:touch-action

    CSS 属性 touch-action 用于指定某个给定的区域是否允许用户操作,以及如何响应用户操作(比如浏览器自带的划动.缩放等). /* Keyword values */ touch-actio ...

  3. jfrog artifactory jenkins pipeline 集成

    1. 预备环境 artifactory ( 开源版本 ) maven jenkins jenkins artifactory plugin (在插件管理安装即可) 2. 配置artifactory  ...

  4. unity drawcall测试

    unity引擎影响drawcall的元素(使用Quad和Cube对比测试) 1.相机的background(没有渲染元素区域的颜色),4Verts.2Tris.1SetPass calls:      ...

  5. C#网络编程(同步传输字符串) - Part.2

    服务端客户端通信 在与服务端的连接建立以后,我们就可以通过此连接来发送和接收数据.端口与端口之间以流(Stream)的形式传输数据,因为几乎任何对象都可以保存到流中,所以实际上可以在客户端与服务端之间 ...

  6. (转)Android中的页面切换动画

    这段时间一直在忙Android的项目,总算抽出点时间休息一下,准备把一些项目用到的Android经验分享一下. 在Android开发过程中,经常会碰到Activity之间的切换效果的问题,下面介绍一下 ...

  7. JavaWeb中验证码的实现

    在Web程序中,验证码是经常使用的技术之一.Web程序永远面临未知用户和未知程序的探测.为了防止恶意脚本的执行,验证码技术无疑是首选方案之一.本文将讨论如何在JSP和Servlet中使用验证码技术. ...

  8. Linux 输入子系统 input

    一.输入子系统 针对输入设备设计:触摸屏.键盘.按键.传感器.鼠标...... 二.每种设备都属于字符设备驱动,程序的写法步骤也相同 1.实现入口函数 xxx_init() 和卸载函数 xxx_exi ...

  9. java代码----求最大值,平均值。。。

    总结:方法的返回值----返回的对象到底是什么? package com.a; import java.util.Scanner; //从键盘输入10个数,并输出最大值,最小值,平均值 public ...

  10. entering power save mode无法开机解决办法

    标签(空格分隔): 服务器 问题描述: 服务器型号为IBM system x 3755 m3.服务器在搬动之前运行良好,换完位置之后出现按完电源键后无法进入系统,通过显示器看到entering pow ...