ubuntu21编译安装opencv2.4.9

  • 前言
  • 一、下载
  • 二、安装依赖项
  • 1. build-essential 软件包,为编译程序提供必需软件包的列表信息,这样软件包才知道头文件、库函数在哪里。
  • 2. 安装支持读写图片及视频的依赖项。
  • 3. 安装cmake
  • 4.安装pkg-config,它是一个提供从源代码中编译软件时查询已安装的库时使用的统一接口的计算机软件。
  • 三、安装编译器
  • 注意,opencv2.4.9需要gcc-5编译器
  • 1.查看是否安装了gcc-5
  • 2.安装gcc-5
  • 3. 修改优先级
  • 4.更新配置
  • 5. 验证是否修改成功
  • 四、使用cmake检测编译环境
  • 此处可能会出现以下错误
  • 解决方法
  • 五、使用make编译
  • 六、安装
  • 七、配置lib库及环境变量
  • 1.将opencv的库加入到路径,从而让系统可以找到,如果第一个没有就添加第二个
  • 2.修改环境变量
  • 八、编译测试代码并测试
  • 1. 编译
  • 2. 测试
  • 3.弹出界面即为成功


前言

高版本ubuntu很少用opencv2,但是最近遇到了点问题,只能用opencv2.x,安装的过程中遇到了不少坑,以此作为总结


一、下载

官网下载需要的版本,传送门:https://opencv.org/releases/,笔者下载的是2.4.9

二、安装依赖项

1. build-essential 软件包,为编译程序提供必需软件包的列表信息,这样软件包才知道头文件、库函数在哪里。

sudo apt-get install build-essential

2. 安装支持读写图片及视频的依赖项。

sudo apt-get install libgtk2.0-dev libavcodec-dev libavformat-dev libtiff4-dev libswscale-dev libjasper-dev

3. 安装cmake

sudo apt-get install cmake

4.安装pkg-config,它是一个提供从源代码中编译软件时查询已安装的库时使用的统一接口的计算机软件。

sudo apt-get install pkg-config

三、安装编译器

注意,opencv2.4.9需要gcc-5编译器

1.查看是否安装了gcc-5

ls /usr/bin/gcc* 笔者已经安装,因此可以看到,gcc-5这一项,如未安装,参考以下步骤

opencvsharp 安装 opencv2.4.9安装教程_优先级

2.安装gcc-5

sudo apt install gcc-5 g++-5

3. 修改优先级

由于系统中存在多个gcc,但通常默认使用为优先级最高的,通过以下指令可以修改优先级
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 20 --slave /usr/bin/g++ g++ /usr/bin/g++-5

4.更新配置

sudo update-alternatives --config gcc

5. 验证是否修改成功

gcc -v
g++ -v

出现如下界面即为设置成功

opencvsharp 安装 opencv2.4.9安装教程_g++_02

四、使用cmake检测编译环境

解压下载的文件,并在当前界面打开终端,

cd opencv-2.4.9
mkdir release  
cd release  
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..

其中, CMAKE_BUILD_TYPE=RELEASE表示release版本
CMAKE_INSTALL_PREFIX=/usr/local表示安装的目录,其中包含include等头文件

此处可能会出现以下错误

error: #error This file requires compiler and library support for the ISO C++ 2011 standard. This support must be enabled with the -std=c++11 or -std=gnu++11 compiler options.

解决方法

在CMakeLists.txt中添加

SET(CMAKE_CXX_FLAGS "-std=c++0x")

opencvsharp 安装 opencv2.4.9安装教程_opencvsharp 安装_03

五、使用make编译

make -j14 j后面的数字与自己电脑的硬件有关,越大编译越快

六、安装

sudo make install

七、配置lib库及环境变量

配置lib库是为了能让编译你自己写的c++代码的时候能够找到所包含的opencv模块的动态库或者静态库,其中编译生成的动态库在这个文件夹下:/usr/local/lib/

1.将opencv的库加入到路径,从而让系统可以找到,如果第一个没有就添加第二个

sudo gedit /etc/ld.so.conf.d/opencv.conf
sudo gedit /etc/ld.so.conf

末尾加入/usr/local/lib,保存退出
sudo ldconfig #使配置生效

2.修改环境变量

sudo gedit /etc/bash.bashrc

末尾加入

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

opencvsharp 安装 opencv2.4.9安装教程_ubuntu_04


保存退出

source /etc/bash.bashrc #使配置生效

八、编译测试代码并测试

1. 编译

samples/c目录下找到build_all.sh并运行。

./build_all.sh

2. 测试

变成绿色的为可执行文件,运行下面命令可以测试,例如:

./find_obj

3.弹出界面即为成功

opencvsharp 安装 opencv2.4.9安装教程_opencv_05