Manjaro下Opencv4+CMake安装和编译指南(完整版)
关于Manjaro,使用这个系统除了符合本工科男的审美外,更重要的是资源占用真的很少,所以才折腾安装这个,先上一张桌面。
- 正文开始
安装Manjaro
安装Manjaro的教程比较多,这里就不多阐述了,传送们走起
Manjaro安装传送门
感谢ArcueidCroft
下面是安装opencv4
参照官方提供的安装说明,我们只需要把opencv和其依赖库就可以
manjaro下安装软件的指令是sudo pacman -S xxx。
安装opencv:sudo pacman -S opencv
~ >>> sudo pacman -S opencv [1]
警告:opencv-4.4.0-1 已经为最新 -- 重新安装
正在解析依赖关系...
正在查找软件包冲突...软件包 (1) opencv-4.4.0-1全部安装大小: 101.35 MiB
净更新大小: 0.00 MiB:: 进行安装吗? [Y/n] Y
安装官方说明:
opencv安装官方说明
如果看不懂英文可以用谷歌浏览器翻译下,如图
依赖库说明(网上查资料+自己理解)
build-essential:主要用于建立C/C++的编译环境,由于Manjaro plasme已经自带gcc和g++,所以这步可以省略,而且在pacman下貌似没有这个依赖库。
cmake:编译生成可执行文件强大的工具,全平台可用,建议安装。
git:一个免费的开源分布式版本控制系统,旨在快速高效地处理从小型到大型项目的所有内容,一个开放源码的版本控制软件。
libgtk2.0-dev:GTK +是用于创建图形用户界面的多平台工具包。GTK +提供了一整套的小部件,适用于从小型一次性工具到完整的应用程序套件的项目,个人理解就是图形界面需要依赖这个兄弟。
pkg-config:这个工具是你在编译应用程序和库时使用的辅助工具。它可以帮助您在命令行上插入正确的编译器选项,以便应用程序可以使用。个人理解就是,帮你找到编译程序依赖库的重要工具。
然后就是参照了这个博客,按照这个安装依赖库即可
Opencv依赖库安装说明
但只参照了依赖库部分,后面的指令cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local …是我太菜了,在manjaro下好像并没有起作用,至今没找到原因在哪。
那么我的方法就是跳过这一步环境配置,用cmake-gui来完成配置工作。
~ >>> cd /usr/share/opencv4/samples [130]
/usr/.../opencv4/samples >>> mkdir build
/usr/.../opencv4/samples >>> cd build [130]
/usr/.../samples/build >>> cmake-gui
其中where is the source code是指定源码的目录**/usr/share/opencv4/samples**,where to build the binaries是指定编译生成可执行文件**/usr/share/opencv4/samples/build**,也就是build的目录 。
完成以上配置后,点击configure编译,完成后点击Generate完成编译。
补充一句:manjaro中的opencv*
源码位置:在/usr/share/opencv4中,具体如果不知道的话可以通过以下指令找到他sudo pacman -Ql opencv-samples。
头文件位置:在/usr/include/opencv4
依赖库:在/usr/lib64。
编译完成后
/usr/.../samples/build >>> cd /usr/share/opencv4/samples/build/cpp [130]
/usr/.../build/cpp >>> ls
/usr/.../build/cpp >>> ls
CMakeFiles example_cpp_falsecolor example_cpp_polar_transforms
cmake_install.cmake example_cpp_fback example_cpp_qrcode
example_cpp_3calibration example_cpp_ffilldemo example_cpp_segment_objects
example_cpp_application_trace example_cpp_filestorage example_cpp_select3dobj
example_cpp_bgfg_segm example_cpp_fitellipse example_cpp_simd_basic
example_cpp_calibration example_cpp_grabcut example_cpp_smiledetect
example_cpp_camshiftdemo example_cpp_image_alignment example_cpp_squares
example_cpp_cloning_demo example_cpp_imagelist_creator example_cpp_stereo_calib
example_cpp_cloning_gui example_cpp_imagelist_reader example_cpp_stereo_match
example_cpp_connected_components example_cpp_inpaint example_cpp_stitching
example_cpp_contours2 example_cpp_intelligent_scissors example_cpp_stitching_detailed
example_cpp_convexhull example_cpp_intersectExample example_cpp_text_skewness_correction
example_cpp_cout_mat example_cpp_kalman example_cpp_train_HOG
example_cpp_create_mask example_cpp_kmeans example_cpp_train_svmsgd
example_cpp_dbt_face_detection example_cpp_laplace example_cpp_travelsalesman
example_cpp_delaunay2 example_cpp_letter_recog example_cpp_tree_engine
example_cpp_demhist example_cpp_lkdemo example_cpp_videocapture_basic
example_cpp_detect_blob example_cpp_logistic_regression example_cpp_videocapture_camera
example_cpp_detect_mser example_cpp_mask_tmpl example_cpp_videocapture_gphoto2_autofocus
example_cpp_dft example_cpp_matchmethod_orb_akaze_brisk example_cpp_videocapture_gstreamer_pipeline
example_cpp_digits example_cpp_minarea example_cpp_videocapture_image_sequence
example_cpp_dis_opticalflow example_cpp_morphology2 example_cpp_videocapture_intelperc
example_cpp_distrans example_cpp_neural_network example_cpp_videocapture_openni
example_cpp_drawing example_cpp_npr_demo example_cpp_videocapture_starter
example_cpp_edge example_cpp_opencv_version example_cpp_videowriter_basic
example_cpp_ela example_cpp_pca example_cpp_warpPerspective_demo
example_cpp_em example_cpp_peopledetect example_cpp_watershed
example_cpp_facedetect example_cpp_phase_corr Makefile
example_cpp_facial_features example_cpp_points_classifier
/usr/.../build/cpp >>> ./example_cpp_ela
随便挑一个样例运行一下看。
好了,证明opencv样例的可执行文件完成了。
接下来重头戏
用cmake运行自己编写的程序
初次接触linux真的走了好久的弯路,用cmake在manjaro上跑opencv4的程序踩过了无数的坑。
首先我们要明白一点,cmake的一些工作原理。用cmake编译程序时,需要在CMakeLists.txt里制定编译器、头文件的路径、源文件的路径、依赖库等信息。开始配置的时候,我在/home/用户名/Documents/opencv_test/建立了自己的opencv_test.cpp文件,编写了打开一张图片的程序,如下:
#include<iostream>
#include"opencv2/opencv.hpp"using namespace std;
using namespace cv;
int main(void)
{Mat image;image=imread("这里写你的图片路径");//打开一张图片namedWindow("Show Image",0);//定义窗口名称imshow("Show Image",image);//显示一张图片waitKey(0);
}
按照以下cmake的教程编写CMakeList.txt文件
CMakeLists.txt详细说明
编写如下:
cmake_minimum_required(VERSION 2.8)
project(opencv_test)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED TRUE)
option( OPENCV_GENERATE_PKGCONFIG ON)
include_directories("/usr/include/opencv4/")
aux_source_directory(.DIR_SRCS)
add_executable(opencv_text ${DIR_SRCS})
cmake . 满屏错误。。。
后来查了opencv官网的安装说明
opencv gcc cmake配置教程
看到了opencv官方给的CMakeLists.txt配置文件说明
cmake_minimum_required(VERSION 2.8)
project( DisplayImage )
find_package( OpenCV REQUIRED )
include_directories( ${OpenCV_INCLUDE_DIRS} )
add_executable( DisplayImage DisplayImage.cpp )
target_link_libraries( DisplayImage ${OpenCV_LIBS} )
然后在里面加入自己的依赖库和源目录
如下,可以通过vim CMakeLists.txt对文件进行编辑
# cmake needs this line
cmake_minimum_required(VERSION 2.8)# Enable C++11
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED TRUE)# Define project name
project(opencv_test)# Find OpenCV, you may need to set OpenCV_DIR variable
# to the absolute path to the directory containing OpenCVConfig.cmake file
# via the command line or GUI
find_package(OpenCV REQUIRED)
include_directories( ${OpenCV_INCLUDE_DIRS} )
# Declare the executable target built from your sources
add_executable(opencv_test2 hello.cpp Myprintf.cpp)# Link your application with OpenCV libraries
target_link_libraries(opencv_test2 ${OpenCV_LIBS})
然后
cmake .
make
再执行./opencv_test,运行成功!
先用着,后面研究下怎么在VS code下交叉编译。
Manjaro下Opencv4+CMake安装和编译指南(完整版)相关推荐
- Centos 7下Nagios的安装及配置(完整版)
Centos 7下Nagios的安装及配置(完整版) 简介 Nagios 是一款自动化运维工具,可以协助运维人员监控服务器的运行状况,并且拥有报警功能.本文章将介绍其安装方法和详细的配置方法. nag ...
- python编程入门指南 代码库在哪下-致Python初学者 Anaconda入门使用指南完整版
打算学习 Python 来做数据分析的你,是不是在开始时就遇到各种麻烦呢? 到底该装 Python2 呢还是 Python3 ? 为什么安装 Python 时总是出错? 怎么安装工具包呢? 为什么提示 ...
- python入门必备指南-致Python初学者 Anaconda入门使用指南完整版
打算学习 Python 来做数据分析的你,是不是在开始时就遇到各种麻烦呢? 到底该装 Python2 呢还是 Python3 ? 为什么安装 Python 时总是出错? 怎么安装工具包呢? 为什么提示 ...
- python人门指南小说-致Python初学者 Anaconda入门使用指南完整版
打算学习 Python 来做数据分析的你,是不是在开始时就遇到各种麻烦呢? 到底该装 Python2 呢还是 Python3 ? 为什么安装 Python 时总是出错? 怎么安装工具包呢? 为什么提示 ...
- 服务器uefi装系统教程,安装UEFI系统教程(完整版
<安装UEFI系统教程(完整版>由会员分享,可在线阅读,更多相关<安装UEFI系统教程(完整版(8页珍藏版)>请在人人文库网上搜索. 1.初出茅庐,有不足之处,请指教一.请认真 ...
- 服务器uefi装系统教程,安装UEFI系统教程(完整版)
<安装UEFI系统教程(完整版)>由会员分享,可在线阅读,更多相关<安装UEFI系统教程(完整版)(8页珍藏版)>请在人人文库网上搜索. 1.初出茅庐,有不足之处,请指教一.请 ...
- Synopsys MetaWare for Linux 安装与编译指南
目录 MetaWare简介 安装与编译前准备 安装GCC7.3 增加你的芯片文件 编译ev_runtime 编译cnn_tools 编译examples MetaWare简介 MetaWare是一个针 ...
- Windows下的cmake安装与使用
Cmake 介绍 CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程).他能够输出各种各样的makefile或者project文件.只是 CMake 的组态档取名 ...
- linux php mysql安装完整版本_Linux下安装PHP+MySQL+Apache完整版
首先下载httpd-2.2.9.tar.gz.MySQL-5.0.41.tar.gz.php-5.2.6.tar.gz.autoconf-2.61.tar.gz.freetype-2.3.5.tar. ...
- 第十八篇 Linux环境下常用软件安装和使用指南
提醒:如果之后要安装virtualenvwrapper的话,可以直接跳到安装virtualenvwrapper的方法,而不需要先安装好virtualenv 安装virtualenv和生成虚拟环境 安装 ...
最新文章
- POJ - 3186 Treats for the Cows DP
- c++框架有哪些_Java Mybatis框架入门教程_v20200726
- oracle 四分位函数,Oracle分析函数四——函数RANK,DENSE_RANK,FIRST,LAST…
- Python操作mysql数据库查询操作时提示“unread-result-found”
- cf831D(dp)
- Mac下显示隐藏文件
- 中国微型计算机分省市产量数据统计,2017年6月中国微型计算机设备产量统计数据分析...
- Deep Residual Network
- hihocoder第220周-一道拧巴的题
- 软件license授权加、解密,软件注册工具(2)
- 电风扇计算机控制系统,语音识别电风扇控制系统设计.doc
- WIN7共享WIFI
- 【期末划重点】数据库速成
- Photoshop2022全版本软件安装包(附图文教程、windows\mac系统全版本软件)
- 如何使用视频压缩软件,压缩视频大小 ?
- 【面试题】对闭包的理解?什么是闭包?
- 运载火箭弹道飞行程序matlab,运载火箭弹道与控制理论基础
- File对象和IO流
- node.js实现编码转GBK转UTF8,中文乱码方案!!!
- 美国普渡大学 计算机科学,普渡大学计算机科学研究生专业排名专家内幕解读总汇...
热门文章
- NI CompactRIO嵌入式系统开发流程总结
- 【工业智能】天泽智云带你解读工业智能热门科技 – 大数据、工业互联网、云计算、边缘计算、CPS
- java 纳秒 毫秒,秒(s) 毫秒(ms) 微秒(μs) 纳秒(ns) 皮秒(ps)及Java获得
- Hive教程-详细全部
- 【设计】松本行弘的程序世界
- Vue框架Element UI+Mint UI教程汇总
- windowsGHO镜像系统winXPwin7win8win10下载
- ectouch v1 thinkphp的搜索问题
- java坦克大战墙_java实现坦克大战(功能丰富)
- 黑龙江省谷歌高清卫星地图下载