python的opencv安装很简单,通过pip就可以完成,但是c++在安装opencv4的时候需要注意一些。下面给出linux下安装opencv4的步骤。
1.安装依赖

sudo apt-get install cmake
sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg.dev libtiff5.dev libswscale-dev libjasper-dev

2.下载源文件
推荐直接去https://github.com/opencv/opencv下载,如果git clone网速太慢的话,也可以在网页上下载,然后直接解压。

git clone https://github.com/opencv/opencv

3.编译安装
第二步完成,我们应该下载的是目前最高版本opencv4.5.1,解压后进入opencv文件下,建立build文件夹

mkdir build
cd build

完成后,应该看到路径下多出build文件夹

然后配置cmake

sudo cmake -DCMAKE_BUILD_TYPE=Release \
-DOPENCV_GENERATE_PKGCONFIG=ON \
-DCMAKE_INSTALL_PREFIX=/usr/local ..

注意…不能省略,-DOPENCV_GENERATE_PKGCONFIG=ON是为了在/usr/loacl/lib/pkgconfig/目录下自动生成opencv4.pc文件。
camke配置完后开始make

sudo make -j4

-j4是根据为了提高编译速度

sudo make install

完成编译安装。

4.环境配置
安装完成后还需要进行环境配置,先将OpenCV的库添加到路径,从而可以让系统找到

sudo vim /etc/ld.so.conf.d/opencv4.conf

在里面添加一行

/usr/local/lib

保存后返回终端界面,然后输入以下代码时刚刚的路径配置生效

sudo ldconfig

接下来配置bash

sudo vim /etc/bash.bashrc

在文件的最后加入

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

保存并返回终端界面后执行以下命令,使配置生效

source /etc/bash.bashrc

最后,运行以下命令更新一下数据库文件

sudo updatedb

5.实例验证
新建一个cpp文件my.cpp,将opencv.hpp头文件写进去

在终端输入

sudo  g++ -g -Wall -std=c++11 my.cpp -o my `pkg-config --cflags --libs opencv4`

因为linux是x86-64编译环境所以这里是g++ -g -Wall -std=c++11,生成my的执行文件

./my


验证成功。

或者验证opencv中的实例。
进入opencv/samples/cpp/eaxmple_cmake目录下,尝试make一下,发现报错如下

g++ example.cpp -o example.o -c -Wall -I/usr/local/include/opencv4/opencv2
example.cpp:1:28: fatal error: opencv2/core.hpp: 没有那个文件或目录
compilation terminated.
Makefile:11: recipe for target 'example.o' failed
make: *** [example.o] Error 1

意思是说找不到opencv2/core.hpp这个头文件。而我们到/usr/local/include/opencv4/opencv2下,发现明明有这个头文件啊?问题就出在例程的Makefile里,打开Makefile看一看

 CXX ?= g++CXXFLAGS += -c -Wall $(shell pkg-config --cflags opencv)LDFLAGS += $(shell pkg-config --libs --static opencv)all: opencv_exampleopencv_example: example.o; $(CXX) $< -o $@ $(LDFLAGS)%.o: %.cpp; $(CXX) $< -o $@ $(CXXFLAGS)clean: ; rm -f example.o opencv_example

问题找到了,第3、4行中显然是在pkgconfig中调用opencv,而我们的opencv4是在/usr/local/lib/pkgconfig/目录下自动生成的opencv4.pc,那么只需要把这两行的opencv改为opencv4就ok了。修改后保存,然后再make一下,这次不报找不到头文件的错了,但是出来了一堆其他的错误。拿出错误的前几行看一下。

g++ example.cpp -o example.o -c -Wall -I/usr/local/include/opencv4/opencv -I/usr/local/include/opencv4
In file included from /usr/local/include/opencv4/opencv2/core.hpp:52:0,from example.cpp:1:
/usr/local/include/opencv4/opencv2/core/cvdef.h:716:4: error: #error "OpenCV 4.x+ requires enabled C++11 support"#  error "OpenCV 4.x+ requires enabled C++11 support"^
In file included from /usr/include/c++/5/array:35:0,from /usr/local/include/opencv4/opencv2/core/cvdef.h:722,from /usr/local/include/opencv4/opencv2/core.hpp:52,from example.cpp:1:

可以发现,其意思是说opencv4需要c++11支持,而我们的makefile中并没有使用c++11去编译 ,所以解决办法就是在Makefiile中指定用c++11标准编译。再次打开Makefile,在第3行下加入CXXFLAGS += -std=c++11,最终的makefile如下所示

CXX ?= g++CXXFLAGS += -c -Wall $(shell pkg-config --cflags opencv4)
CXXFLAGS += -std=c++11
LDFLAGS += $(shell pkg-config --libs --static opencv4)all: opencv_exampleopencv_example: example.o; $(CXX) $< -o $@ $(LDFLAGS)%.o: %.cpp; $(CXX) $< -o $@ $(CXXFLAGS)clean: ; rm -f example.o opencv_example

再次make,就可以运行example。

linux c++ opencv4安装指南相关推荐

  1. 检查suse是否安装ftp服务,安装:SuSE Linux FTP版安装指南(转)

    安装:SuSE Linux FTP版安装指南(转)[@more@]在安装之前我要罗嗦几句:SuSE OS有iso/bin与ftp两种,其中iso基本上是测试版,是一些linux 爱好者自己做,而官方只 ...

  2. Win Linux 双系统安装指南

    双系统安装指南 环境说明 硬件:一块240G NVMe,一块240G SSD,一块2T的HDD. 系统:Linux Mint 18.2,Windows 10 Enterprise Version 17 ...

  3. fatal error: opencv2/opencv_modules.hpp: No such file or directory(linux系统,opencv4)

    目的:在linux安装配置opencv2,出现了很多问题.总结一下. 1安装过程: 1)下载opencv 和opencv_contrib cd ~/<my_working_directory&g ...

  4. linux下opencv4查看版本

    当opencv版本4.x.x时,使用命令: pkg-config --modversion opencv4 当opencv版本3.x.x时,使用命令: pkg-config --modversion ...

  5. 超详细!linux系统nlg-eval安装指南

    前言:最近在做文本生成的任务,需要用到bleu等评价指标,看到其他研究工作中都在用nlg-eval这个github库,就想把它拿过来用,然而安装过程并不是一帆风顺的,谨以此篇博客记录之,为后来者提供一 ...

  6. Kali Linux系统正确安装指南教程(二)更新换源 安装github软件

    kail 如何换源? 首先我们打开终端进入到etc下的apt文件中: 1.当然是先切换到目录 cd /etc/apt 2.进行源备份(好习惯) cp source.list ./source.list ...

  7. Apollo 安装之linux服务器快速安装指南 【亲测】

    文章目录 环境要求 jdk 1.8 mysql 5.6.5以上 Linux 操作 下载安装包 上传linux服务器 将文件进行解压 通过demo.sh 修改连接的数据库地址 检查一下端口是否被占用 启 ...

  8. Kali Linux系统正确安装指南教程(一)MAC安装kail+Vmware Fusion详细教程(吐血本人测试10次)

    苹果电脑MAC安装kail的详细教程 本文虚拟机vmware fusion 反反复复安装10来次,喜欢的给个赞,也是给自己日后在安装留下个笔记,要不还要百度 MAC + vmware Fusion + ...

  9. linux子系统使用rstudio,Windows 10 Linux子系统 (wsl)学习手记

    微软在Windows10 1607版中提供了一个Linux子系统,用户不需要虚拟机就可以直接运行Linux命令,是一个对开发者非常方便的功能.目前服务器领域基本都是Linux的天下,但是在个人桌面领域 ...

  10. 百度最全的LINUX和Redhat学习教程下载帖大全

    . 实例图解Red Hat Linux 9应用指南 . Redhat Linux 9中文官方文档 . Red Hat Linux学习基础教程 . Red Hat Linux 9.0魔鬼式培训教程 . ...

最新文章

  1. 节能无线信标Ver0:功率测试
  2. 获取iPhone通话记录(需越狱)
  3. 【感悟随笔】没能变强是因为你太贪图舒服了
  4. Tomcat的Classpath-常见问题以及如何解决
  5. ruby编程API阅读之BasicObject阅读
  6. linux下基于Posix message queue的同步消息队列的实现
  7. opencv 编译安装时出现报错 modules/videoio/src/cap_ffmpeg_impl.hpp:585:34: error: ‘AVStream {aka struct AVStre
  8. Hadoop CapacitySchedule配置
  9. 干了4年程序员年薪20万,高中同学当牙医,对比收入后懵了
  10. 电子电路学习笔记(16)——晶振电路的电容
  11. python中while用法
  12. 如何查看支付宝商户ID(支付宝pid)?
  13. 柔宇科技掀起的柔性电子潮流,正在加速改变我们的生活
  14. 机械革命code01卡顿
  15. JBoot框架定时任务一个注解轻松带你实现
  16. Oh My Zsh和Oh My Posh
  17. 位是存储在计算机中的最小单位,在计算机中信息存储的最小单位是什么?
  18. 中国物流园区潜力评估及十四五战略研究报告2022-2028年
  19. C语言——输出杨辉三角的前n行
  20. 一文详解电商直播四大平台的优劣势

热门文章

  1. 开源办公系统:支持在线Office在线编辑、文档协同
  2. 微信视频强制分享观看源码 微信流量裂变源码吸粉变现源码
  3. 打印1000张大概多少钱,打印费多少钱一张
  4. 自动化测试工程师简历模板
  5. Hadoop原理讲解(面试题)
  6. 百度地图,坐标反查,拾取坐标位置
  7. win7 升级到 win10
  8. Windows环境下ODAC安装
  9. java爬虫搜狗微信_搜狗微信公众号文章抓取
  10. Navicat操作数据库