参考:https://blog.csdn.net/youjian124/article/details/75195758
参考:https://www.cnblogs.com/xuelisheng/p/9988626.html
参考:https://www.zhihu.com/question/36609459/answer/89743845
参考:https://blog.csdn.net/weixin_48720671/article/details/109321213
opencv的依赖安装参考

一、安装opencv过程中学到的基础知识

1、gcc、cmake、make关系

(1)三者的关系

  • 编译一个c/c++/java源文件,用gcc。
  • gcc一个一个编译很费劲,用make可以一键编译多个源文件。make按照makefile中的命令进行编译和链接。
  • 写make所需要的makefile文件很费劲,用cmake可以一键生成makefile。cmake通过CMakeLists.txt生成makefile。
  • CMakeLists.txt需要人写。

(2)使用的顺序

  • 第一步,写CMakeLists.txt。
  • 第二步,用cmake生成makefile。
  • 第三步,用make编译。

2、bashrc、profile之间的关系和区别

参考:https://blog.csdn.net/smile_from_2015/article/details/80058351
参考:https://blog.csdn.net/u011331731/article/details/88823533

(1)规则

  • profile代表的登录时操作;bashrc代表打开bash操作
  • \etc下代表对所用账户都适用,~下代表当前用户

(2)各个bashrc和profile

  • /etc/bash.bashrc 所有用户,打开bash时
  • ~/.bashrc 当前用户,打开bash时
  • /etc/profile 所有用户,登录时
  • ~/.profile 当前用户,登录时

(3)如何选择环境变量放在哪个文件

  • 对于miniconda这种安装在用户目录下的,定义环境变量时,放在~/.bashrc中。
  • CUDA安装在/usr/local下,但因为可能随时切换不同的版本,最好放在~/.bashrc。
  • opencv一般都安装在/usr/local下,定义环境变量时,可以放在/etc/bash.bashrc,具体看需求。

二、安装opencv(cmake、make一个例子)

1、opencv依赖

对于ubuntu 18.04

sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg-dev libtiff4-dev libswscale-dev
sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update
sudo apt install libjasper1 libjasper-dev
sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg.dev libtiff5.dev libswscale-dev libjasper-dev

2、下载opencv

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

3、编译安装,cmake+make

mkdir build
cd build
sudo mkdir /usr/local/opencv
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local/opencv  -D OPENCV_GENERATE_PKGCONFIG=ON ..
# CMAKE_INSTALL_PREFIX=指定安装目录
# CMAKE_BUILD_TYPE=Debug或Release
# OPENCV_GENERATE_PKGCONFIG: OpenCV4默认不生成.pc文件,cmake后再加一条-D OPENCV_GENERATE_PKGCONFIG=ON才会生成。
# 注意后边有两个点
sudo make -j4sudo make install

4、配置环境

# 在/etc/ld.so.conf.d/opencv.conf中添加
/usr/local/opencv/lib
# 再sudo ldconfig
# 在/etc/bash.bashrc中添加
if [ $PKG_CONFIG_PATH ]; thenexport PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/opencv/lib/pkgconfig
elseexport PKG_CONFIG_PATH=/usr/local/opencv/lib/pkgconfig
fi
# 执行source /etc/bash.bashrc 或者 新建窗口

如果需要在python的conda环境中使用,参考以下网址配置
https://www.cnblogs.com/amiza/p/10337266.html

5、检验

  • 如果在安装时,配置选项OPENCV_GENERATE_PKGCONFIG=ON,可以用以下方法测试,会输出版本号
pkg-config opencv --modversion
  • 如果没有,需要手动写一个c++代码,再编译测试,参考,不需要修改其中的版本,lena下载地址

三、安装另一个版本的opencv

1、下载并且解压

2、在编译时修改CMAKE_INSTALL_PREFIX为另一个路径

mkdir build
cd build
sudo mkdir /usr/local/opencv3
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local/opencv3  -D OPENCV_GENERATE_PKGCONFIG=ON ..
# CMAKE_INSTALL_PREFIX=指定安装目录
# CMAKE_BUILD_TYPE=Debug或Release
# OPENCV_GENERATE_PKGCONFIG: OpenCV4默认不生成.pc文件,cmake后再加一条-D OPENCV_GENERATE_PKGCONFIG=ON才会生成。
# 注意后边有两个点
sudo make -j4sudo make install

安装过程中遇到问题参考https://blog.csdn.net/qq_41323996/article/details/109469148

3、每次切换版本时重新配置环境即可

sudo gedit /etc/ld.so.conf.d/opencv.conf
sudo ldconfig
sudo gedit /etc/bash.bashrc
source /etc/bash.bashrc

cmake/make基础知识、bashrc/profile基础知识、安装opencv与版本切换相关推荐

  1. cmake 安装(高版本切换到低版本)

    (切记不可如下操作: sudo apt-get autoremove cmake 或 sudo apt-get remove cmake ) 正确操作: cmake --version (检查当前在用 ...

  2. 科学计算机程序 字表处理软件都是,计算机应用基础知识_计算机应用基础试题及答案【最新资料】.doc...

    计算机应用基础知识_计算机应用基础试题及答案[最新资料] 计算机应用基础知识 计算机应用基础试题及答案 ? 计算机应用基础知识1.1填空题1.第一代计算机采用的电子器件是--[答案] 电子管2.第四代 ...

  3. js基础--数据类型检测的相关知识

    欢迎访问我的个人博客:www.xiaolongwu.cn 前言 最近工作有点忙,好几天都没更新技术博客了. 周末起床打开有道云笔记,发现自己的博客todolist里躺了一堆只有名字的文件. 话不多说, ...

  4. python基础知识资料-Python基础知识汇总

    原标题:Python基础知识汇总 1.Anaconda的安装 百度Anaconda的官网,下载左边的Python3.X版本 然后是设置路径,最后给出Jupyter notebook.具体参考: 猴子: ...

  5. python开发需要掌握哪些知识-Python基础学习需要掌握哪些知识

    1.1Python的对象 python的内置对象类型有很多,包括数字,字符串,列表,集合,元组,字典等等,在Python中,一切皆对象 pickle腌制--在Python中,如果有一些对象需要持久性存 ...

  6. 公共基础知识计算机,公共基础知识计算机基础知识试题

    计算机基础知识是公共基础知识考试的组成成分之一,以下是由学习啦小编整理关于共基础知识计算机基础知识试题的内容,希望大家喜欢! 公共基础知识计算机基础知识试题 1.CPU的主要功能是进行( ). A.算 ...

  7. 计算机的概念重点,2019考研计算机重点知识:十二大基础概念释义

    2019考研复习正在紧张的进行中,为了更好的帮助同学们学习.新东方在线为大家整理了"2019计算机考研重点知识:十二大基础概念释义"的相关信息,提醒各位考生要合理安排复习时间,做好 ...

  8. 你需要知道的基础算法知识——STL和基础数据结构(六)

    引言 STL是C++的标准模板库,竞赛中很多常用的数据结构.算法在STL中都有,熟练地掌握它们在很多题目中能极大地简化编程. STL包括容器(container).迭代器(iterator).空间配置 ...

  9. 你需要知道的基础算法知识——STL和基础数据结构(七)

    引言 STL是C++的标准模板库,竞赛中很多常用的数据结构.算法在STL中都有,熟练地掌握它们在很多题目中能极大地简化编程. STL包括容器(container).迭代器(iterator).空间配置 ...

最新文章

  1. 解决eclipse报PermGen space异常的问题
  2. git学习------gt;Git 分支管理最佳实践
  3. 精通spring——深入java ee开发核心技术 pdf_2019精通Spring Boot 42讲 高清pdf完整版
  4. abaqus的python安装文件在哪_在abaqus2016中安装xlwt和xlrd库教程
  5. 面经——C/C++常见面试知识点总结附面试真题
  6. js 转化为实体符_js转html实体的方法
  7. 文本分析工具 数据科学_数据科学工具
  8. 天天在做图表,其实你根本不懂数据可视化
  9. 小小c语言贪吃蛇思路,【图片】C语言小游戏~贪吃蛇【c语言吧】_百度贴吧
  10. python init main_python 模块中的 __init__.py __main__.py
  11. java金额格式化 .00_Java中金额的格式化###,###.00
  12. 【图像处理】【去模糊】图像去模糊的原理
  13. Java进阶之路,技术要点
  14. 走向世界中的我国摄影测量与遥感 ——访中国测绘学会理事长、国家测绘局原副局长杨凯
  15. 【NLP】(task8)Transformers完成抽取式问答+多选问答任务(更新ing)
  16. java 中的枚举_说说Java中的枚举(一)
  17. 电池充放电1c指的是什么
  18. 社工工具包 SEToolkit
  19. Java好学吗?现在待遇如何?
  20. 2020数字中国创新大赛 • 算法赛道冠军技术方案分享

热门文章

  1. Linux基础篇① (Linux介绍;VM和CentOS详细安装教程;工具环境搭建,配置;Linux目录结构)
  2. Vue Cli4 使用高德地图定位 获取当前经纬度信息以及周边定位
  3. 数据可视化:部分整体类可视化图表大全
  4. 计算机提取公式算等差平均,《等比数列前n项和》教案.doc
  5. MATLAB/Simulink 通信原理及仿真学习(二)
  6. python: can‘t open file ‘C:\Users\Lenovo\snow.py‘: [Errno 2] No such file or directory解决方案
  7. 分不清ARM和X86架构,来看看服务器的产品形态
  8. 7000左右的笔记本推荐学计算机,7000左右学生笔记本电脑十大排行-性价比学生笔记本电脑推荐榜单...
  9. 什么是激光雷达的“发动机技术”?一文讲透行业技术壁垒
  10. 基于SpringBoot的websocket的多人聊天室项目