1.

clone源码

https://github.com/opencv/opencv

2.

安装cmake

3.

cmake配置的时候,输出目录需要另外设置一个目录,不可以放到源码目录

4.

用cmake config的时候有两个需要在线下载,但是cmake下载不下来

5.

在cmake输出目录打开CMakeDownloadLog.txt文件,这里面显示了下载什么文件,自己把url拷贝出来,在浏览器里面下载出来

6.

在CMakeDownloadLog.txt目录中还记录了把文件下载到哪里,自己下载完成后,拷贝到目录

比如我x64的有一个需要下载的文件ippicv_2019_win_intel64_20180723_general.zip

在CMakeDownloadLog.txt文件中显示了要从https://raw.githubusercontent.com/opencv/opencv_3rdparty/32e315a5b106a7b89dbed51c28f8120a48b368b4/ippicv/ippicv_2019_win_intel64_20180723_general.zip下载到3rdparty\ippicv目录中

7.

下载完成后在源码目录找到下载这个文件的cmake,比如(opencv\3rdparty\ippicv\ippicv.cmake)

ocv_download(FILENAME ${OPENCV_ICV_NAME}
              HASH ${OPENCV_ICV_HASH}
              URL
                "${OPENCV_IPPICV_URL}"
                "$ENV{OPENCV_IPPICV_URL}"
                "https://raw.githubusercontent.com/opencv/opencv_3rdparty/${IPPICV_COMMIT}/ippicv/"
              DESTINATION_DIR "${THE_ROOT}"
              ID IPPICV
              STATUS res
              UNPACK RELATIVE_URL)
 if(res)
   set(${root_var} "${THE_ROOT}/${OPENCV_ICV_PACKAGE_SUBDIR}" PARENT_SCOPE)
 endif()
改成

set(${root_var} "${THE_ROOT}/${OPENCV_ICV_PACKAGE_SUBDIR}" PARENT_SCOPE)

上面就是下载,成功后设置res为true,然后再设置环境为下载的文件,我们既然自己手动下载并且放置好了,就可以把这个删掉了,直接设置环境

8.

这个时候cmake是卡死的,点击stop,然后config和generate都是灰掉的,直接关掉

9.

再打开cmake,再config,还会有需要下载的文件,同样下载下来放到对应目录下,并且配置cmake

这次是ffmpeg的两个文件

opencv_videoio_ffmpeg.dll

opencv_videoio_ffmpeg_64.dll

这个对应的cmkae是ffmpeg.cmake,把下面的直接删掉就好了

foreach(id ${ids})
    ocv_download(FILENAME ${name_${id}}
               HASH ${FFMPEG_FILE_HASH_${id}}
               URL
                 "$ENV{OPENCV_FFMPEG_URL}"
                 "${OPENCV_FFMPEG_URL}"
                 "https://raw.githubusercontent.com/opencv/opencv_3rdparty/${FFMPEG_BINARIES_COMMIT}/ffmpeg/"
               DESTINATION_DIR ${FFMPEG_DOWNLOAD_DIR}
               ID FFMPEG
               RELATIVE_URL
               STATUS res)
    if(NOT res)
      set(status FALSE)
    endif()
  endforeach()

这个就是遍历下载两个文件,都下载好了才设置为true,然后后面配置环境,我们已经下载好了,不用这一步了

10.

这时最好重启电脑

11.

电脑起来后选择config,第一次结束显示是红的,然后再点击config,这是没有红色的选项显示了

12.

选中BUILD_opencv_world,这个的目的是把所有的lib放到一个lib中,使用更方便

13.

点击generate生成sln工程

14.

编译工程是如果碰到了fail,提示无法找到opencv_world411.lib,那就是因为没有编译成功

15.

找到工程中modules->opencv_world单独编译看看报错

16.

如果报错是 fatal error LNK1127: library is corrupt ippicvmt.lib那就是我们刚才设置的时候出现了问题

这是表示这个lib库损坏了,我们可以在ippicv目录下把ippicv_win删掉,然后解压我们自己下载的压缩包,再重新编译

17.

如果正常的话会全部编译通过

18.

剩下的就是导入到自己的工程使用即可

opencv编译的更多相关文章

  1. 记录opencv编译过程

    准备学习opencv,参考了几个网页终于完成.编辑器和opencv版本都选择最新的版本. 记录过程如下 1. 下载准备: 1)         Opencv源码, 下载地址: https://sour ...

  2. OpenCV编译以及QT Creator配置

    OpenCV编译以及QT Creator配置 在进行编译前,需下载以下工具和源码: CMake ---- 用于编译: 下载地址; https://cmake.org/ 安装在D:\Program Fi ...

  3. OpenCV编译 Make出错 recipe for target 'modules/imgproc/CMakeFiles/opencv_test_imgproc.dir/all' failed

    OpenCV编译  Make出错 recipe for target 'modules/imgproc/CMakeFiles/opencv_test_imgproc.dir/all' failed 添 ...

  4. qt+opencv编译环境的配置

    第一步:安装与配置Qt 从https://account.qt.io/downloads下载Qt,并注册账户.开始安装.首先下载qt-opensource-windows-x86-mingw482_o ...

  5. opencv编译:The CXX compiler identification is unknown The C compiler identification is unknown

    opencv编译:The CXX compiler identification is unknown The C compiler identification is unknown 解决方法: F ...

  6. 我的复杂的OpenCV编译之路(OpenCV3.1.0 + VS2010 + Win7)

    教程:www.cnblogs.com/jliangqiu2016/p/5597501.html 这里主要记载我编译遇到的错误及解决方法. OpenCV3.1软件下载:https://sourcefor ...

  7. Ubuntu 下安装opencv 编译后执行找不到库

    在ubuntu下编译opencv程序后,执行报下面到错误:error while loading shared libraries: libopencv_core.so.2.4: cannot ope ...

  8. 机器学习笔记之三-yolov3+win7+vs2017+gpu+opencv编译

    1.环境安装 1.1 vs2017+cuda9.1+cudnn7.0可以和tensorflow一起安装网上教程多,不多说.       唯一需要注意的是vs2017要安装好2015版本的工具集v140 ...

  9. Windows10 + Visual Studio 2017 + CMake +OpenCV编译、开发环境配置及测试

    由于最近需要使用OpenCV,本人需要在自己的PC上使用OpenCV,因此最近一直在研究如何使用Visual Studio编译OpenCV源代码并搭建开发环境,折腾了很长时间,查阅了很多相关资料,终于 ...

  10. 由于C++类库版本不同导致的OpenCV编译链接错误

    太长不看版:GCC4和GCC5使用的C++标准库下,string的名字不一样,导致链接错误. 之前在Ubuntu下使用OpenCV的时候一切正常.后来再次编译的时候,连接器提示有些库函数找不到: ma ...

随机推荐

  1. OSGEarth环境搭建

    1.下载OsgEaarth2.8源码 https://codeload.github.com/gwaldron/osgearth/legacy.zip/osgearth-2.8 2.下载perl 编译 ...

  2. kafka笔记4(2)

    提交和偏移量 每次调用poll 方法,总是返回生产者写入Kafka但还没有被消费者读取过的记录我们因此可以追踪到哪些记录时被群组里的哪个消费者读取过的. 我们把更新分区当前位置的操作叫做提交. 那么消 ...

  3. Spring之Bean的装配

    一.Bean的装配Bean的装配,即Bean对象的创建.容器根据代码要求创建Bean对象后再传递给代码的过程,称为Bean的装配.1.默认装配方式代码通过getBean()方式从容器获取指定的Bean ...

  4. Hive 学习之路(八)—— Hive 数据查询详解

    一.数据准备 为了演示查询操作,这里需要预先创建三张表,并加载测试数据. 数据文件emp.txt和dept.txt可以从本仓库的resources目录下载. 1.1 员工表 -- 建表语句 CREAT ...

  5. 【JVM】02垃圾回收机制

    垃圾回收 垃圾回收策略https://blog.csdn.net/u010425776/article/details/51189318 程序计数器.Java虚拟机栈.本地方法栈都是线程私有的,也就是 ...

  6. 【java爬虫】网络爬虫思路

    主要是针对某个单独的网站进行页面的爬取,方式有好多种,记录一下大体的思路. 方法1: a.通过http请求获取返回的静态页面. b.将返回的字符串页面进行split,切割成字符串数组. c.遍历字符串 ...

  7. 【小记整理】mybatis配置多个扫描路径写法

    百度得到,但是很乱,稍微整理下: 最近拆项目,遇到个小问题,稍微记录下: <!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 --> <bean id ...

  8. octavia的实现与分析(一)·openstack负载均衡的现状与发展以及lvs,Nginx,Haproxy三种负载均衡机制的基本架构和对比

    [负载均衡] 大量用户发起请求的情况下,服务器负载过高,导致部分请求无法被响应或者及时响应. 负载均衡根据一定的算法将请求分发到不同的后端,保证所有的请求都可以被正常的下发并返回. [主流实现-LVS ...

  9. ZOJ 3981:Balloon Robot(思维+递推)

    题目链接 题意 有n支队在m个位置上做题,有一个机器人位置1到位置m再到位置1循环走派发气球,当队伍a在时间b做完了一道题目的时候,假如机器人走到队伍a的位置的时间为c,那么这个队伍的不开心值就是c- ...

  10. 法国神器"mimikatz"简化版,一键导出结果

    神器之所以称之为神器.那是闹着玩的? 法国神器"mimikatz",那是相当的好使!!! GitHub:https://github.com/gentilkiwi/mimikatz ...