Cruise007
论坛版主
论坛版主
  • 最后登录2020-10-19
  • 发帖数100
  • 金币4150枚
  • 贡献勋章0枚
  • 原创写手
  • 喜欢达人
  • 社区居民
  • 忠实会员
阅读:242回复:0

OpenCV 4.1.2 编译问题

楼主#
更多 发布于:2020-04-14 21:26
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
此帖售价 5 金币,已有 0 人购买 [记录] [购买]
此段为出售的内容,购买后显示

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.剩下的就是导入到自己的工程使用即可
[Cruise007于2020-04-15 15:50编辑了帖子]
喜欢0

最新打赏:0人

努力到无能为力,拼搏到感动自己
游客

返回顶部
支付

欢迎打赏,请选择打赏金额

  • 1元
  • 6元
  • 10元
  • 66元
  • 100元

支付即代表同意《本站支付协议》 有疑问请联系客服