linux c++ opencv4安装指南
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安装指南相关推荐
- 检查suse是否安装ftp服务,安装:SuSE Linux FTP版安装指南(转)
安装:SuSE Linux FTP版安装指南(转)[@more@]在安装之前我要罗嗦几句:SuSE OS有iso/bin与ftp两种,其中iso基本上是测试版,是一些linux 爱好者自己做,而官方只 ...
- Win Linux 双系统安装指南
双系统安装指南 环境说明 硬件:一块240G NVMe,一块240G SSD,一块2T的HDD. 系统:Linux Mint 18.2,Windows 10 Enterprise Version 17 ...
- 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 ...
- linux下opencv4查看版本
当opencv版本4.x.x时,使用命令: pkg-config --modversion opencv4 当opencv版本3.x.x时,使用命令: pkg-config --modversion ...
- 超详细!linux系统nlg-eval安装指南
前言:最近在做文本生成的任务,需要用到bleu等评价指标,看到其他研究工作中都在用nlg-eval这个github库,就想把它拿过来用,然而安装过程并不是一帆风顺的,谨以此篇博客记录之,为后来者提供一 ...
- Kali Linux系统正确安装指南教程(二)更新换源 安装github软件
kail 如何换源? 首先我们打开终端进入到etc下的apt文件中: 1.当然是先切换到目录 cd /etc/apt 2.进行源备份(好习惯) cp source.list ./source.list ...
- Apollo 安装之linux服务器快速安装指南 【亲测】
文章目录 环境要求 jdk 1.8 mysql 5.6.5以上 Linux 操作 下载安装包 上传linux服务器 将文件进行解压 通过demo.sh 修改连接的数据库地址 检查一下端口是否被占用 启 ...
- Kali Linux系统正确安装指南教程(一)MAC安装kail+Vmware Fusion详细教程(吐血本人测试10次)
苹果电脑MAC安装kail的详细教程 本文虚拟机vmware fusion 反反复复安装10来次,喜欢的给个赞,也是给自己日后在安装留下个笔记,要不还要百度 MAC + vmware Fusion + ...
- linux子系统使用rstudio,Windows 10 Linux子系统 (wsl)学习手记
微软在Windows10 1607版中提供了一个Linux子系统,用户不需要虚拟机就可以直接运行Linux命令,是一个对开发者非常方便的功能.目前服务器领域基本都是Linux的天下,但是在个人桌面领域 ...
- 百度最全的LINUX和Redhat学习教程下载帖大全
. 实例图解Red Hat Linux 9应用指南 . Redhat Linux 9中文官方文档 . Red Hat Linux学习基础教程 . Red Hat Linux 9.0魔鬼式培训教程 . ...
最新文章
- 节能无线信标Ver0:功率测试
- 获取iPhone通话记录(需越狱)
- 【感悟随笔】没能变强是因为你太贪图舒服了
- Tomcat的Classpath-常见问题以及如何解决
- ruby编程API阅读之BasicObject阅读
- linux下基于Posix message queue的同步消息队列的实现
- opencv 编译安装时出现报错 modules/videoio/src/cap_ffmpeg_impl.hpp:585:34: error: ‘AVStream {aka struct AVStre
- Hadoop CapacitySchedule配置
- 干了4年程序员年薪20万,高中同学当牙医,对比收入后懵了
- 电子电路学习笔记(16)——晶振电路的电容
- python中while用法
- 如何查看支付宝商户ID(支付宝pid)?
- 柔宇科技掀起的柔性电子潮流,正在加速改变我们的生活
- 机械革命code01卡顿
- JBoot框架定时任务一个注解轻松带你实现
- Oh My Zsh和Oh My Posh
- 位是存储在计算机中的最小单位,在计算机中信息存储的最小单位是什么?
- 中国物流园区潜力评估及十四五战略研究报告2022-2028年
- C语言——输出杨辉三角的前n行
- 一文详解电商直播四大平台的优劣势