opencv编译
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编译的更多相关文章
- 记录opencv编译过程
准备学习opencv,参考了几个网页终于完成.编辑器和opencv版本都选择最新的版本. 记录过程如下 1. 下载准备: 1) Opencv源码, 下载地址: https://sour ...
- OpenCV编译以及QT Creator配置
OpenCV编译以及QT Creator配置 在进行编译前,需下载以下工具和源码: CMake ---- 用于编译: 下载地址; https://cmake.org/ 安装在D:\Program Fi ...
- 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 添 ...
- qt+opencv编译环境的配置
第一步:安装与配置Qt 从https://account.qt.io/downloads下载Qt,并注册账户.开始安装.首先下载qt-opensource-windows-x86-mingw482_o ...
- 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 ...
- 我的复杂的OpenCV编译之路(OpenCV3.1.0 + VS2010 + Win7)
教程:www.cnblogs.com/jliangqiu2016/p/5597501.html 这里主要记载我编译遇到的错误及解决方法. OpenCV3.1软件下载:https://sourcefor ...
- Ubuntu 下安装opencv 编译后执行找不到库
在ubuntu下编译opencv程序后,执行报下面到错误:error while loading shared libraries: libopencv_core.so.2.4: cannot ope ...
- 机器学习笔记之三-yolov3+win7+vs2017+gpu+opencv编译
1.环境安装 1.1 vs2017+cuda9.1+cudnn7.0可以和tensorflow一起安装网上教程多,不多说. 唯一需要注意的是vs2017要安装好2015版本的工具集v140 ...
- Windows10 + Visual Studio 2017 + CMake +OpenCV编译、开发环境配置及测试
由于最近需要使用OpenCV,本人需要在自己的PC上使用OpenCV,因此最近一直在研究如何使用Visual Studio编译OpenCV源代码并搭建开发环境,折腾了很长时间,查阅了很多相关资料,终于 ...
- 由于C++类库版本不同导致的OpenCV编译链接错误
太长不看版:GCC4和GCC5使用的C++标准库下,string的名字不一样,导致链接错误. 之前在Ubuntu下使用OpenCV的时候一切正常.后来再次编译的时候,连接器提示有些库函数找不到: ma ...
随机推荐
- Spring Cloud Ribbon配置详解
概述 有时候需要自定义Ribbon的配置和客户端超时配置. 自动化配置 /* 使用属性自定义功能区客户端 从版本1.2.0开始,Spring Cloud Netflix现在支持使用属性与Ribbon文 ...
- python三大主流web框架之Django安装、项目搭建
这一篇我们将迎来python强大的web框架Django,相信大家都已经不陌生,本篇将介绍Django的安装及基础项目搭建,大神略过~ Django是需要我们手动pip安装的,首先我们来安装Djang ...
- Junit4使用详解二:Junit4运行流程
1.新建一个测试用例,把下面的四个方法勾选以便查看效果 2.我们在各个方法里面写上输出语句 3.运行之后我们可以发现,它的执行顺序是这样的 注:junit4中的运行流程 1.@BeforeClass修 ...
- 手动安装gitlab-runner
手动安装gitlab-runner 在终端使用命令curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runn ...
- Git项目迁移
代码项目迁移步骤 1.将原有项目重命名,old 2.新建一个项目,名字为原本的项目名称,new 3.使用特殊方式克隆代码 # old.git为原项目重命名后的git链接 git clone --mir ...
- 思维导图xmind的使用方法
什么是Xmind Xmind是一款简单好用的思维导图软件,除了可以轻松绘制基本逻辑图,还支持组织结构图(竖直).树状图(水平+竖直).思维导图(辐射).鱼骨图.二维图(表格)模型.免费版可以把思维导图 ...
- hive 常用的 join 操作 实例
test_a 表 id value 1 java 2 python 3 c++ test_b 表 id value 1 java 2 go 3 php 4 c++ 1. join 计算的是笛卡尔积,不 ...
- 并发编程-concurrent指南-原子操作类-AtomicInteger
在java并发编程中,会出现++,--等操作,但是这些不是原子性操作,这在线程安全上面就会出现相应的问题.因此java提供了相应类的原子性操作类. 1.AtomicInteger
- Git小技巧之使用Rebase命令合并提交
想要获取更多文章可以访问我的博客 - 代码无止境. 在日常的开发过程中,我们一个功能可能会有很多次提交.而且我们公司的开发是不允许直接往公司仓库提交代码,所以需要fork到自己的仓库然后merge过去 ...
- PTP 接线方式及通讯距离
PTP 接线方式 CB 1241 RS485 接线 (6ES7 241 1CH30-1XB0) CB1241 RS485 信号板(安装在CPU机本体上) ,订货号为: 6ES7 241 1CH30-1 ...