使用cmake构建opencv3.2时出错 [英] error in using cmake to build opencv3.2

查看:393
本文介绍了使用cmake构建opencv3.2时出错的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想使用opencv3.2的contrib部分,所以我必须从源代码构建它.这是我的设置: Windows10,vs2013,cmake-gui-3.8.1. 在cmake-gui中配置后,我单击生成器按钮,并得到以下错误消息.我是opencv的新手,我不知道该如何解决.任何可以帮助的人,谢谢.

I want to using the contrib part of opencv3.2, so i have to build it from sources. Here is my setting: windows10, vs2013, cmake-gui-3.8.1. after configuration in cmake-gui, i click the generator button, and i get the error message below. I am new to opencv, and i couldn't figure out how to solve it. Anyone who can help, THANKS.

在E:/Program Files/opencv/opencv/source/opencv-3.2.0/cmake/OpenCVUtils.cmake:911(add_library)上的CMake错误: 找不到源文件:

CMake Error at E:/Program Files/opencv/opencv/source/opencv-3.2.0/cmake/OpenCVUtils.cmake:911 (add_library): Cannot find source file:

E:/Program Files/opencv/opencv/build/modules/xfeatures2d/opencv_xfeatures2d_pch.cpp

E:/Program Files/opencv/opencv/build/modules/xfeatures2d/opencv_xfeatures2d_pch.cpp

尝试扩展名.c .C .c ++ .cc .cpp .cxx .m .M .mm .h .hh .h ++ .hm .hpp .hxx .in .txx 呼叫堆栈(最近的呼叫优先): E:/程序文件/opencv/opencv/source/opencv-3.2.0/cmake/OpenCVModule.cmake:784(ocv_add_library) E:/程序文件/opencv/opencv/source/opencv-3.2.0/cmake/OpenCVModule.cmake:729(_ocv_create_module) E:/程序文件/opencv/opencv/source/opencv-3.2.0/cmake/OpenCVModule.cmake:940(ocv_create_module) E:/Program Files/opencv/opencv/source/opencv_contrib-3.2.0/modules/xfeatures2d/CMakeLists.txt:2(ocv_define_module)

Tried extensions .c .C .c++ .cc .cpp .cxx .m .M .mm .h .hh .h++ .hm .hpp .hxx .in .txx Call Stack (most recent call first): E:/Program Files/opencv/opencv/source/opencv-3.2.0/cmake/OpenCVModule.cmake:784 (ocv_add_library) E:/Program Files/opencv/opencv/source/opencv-3.2.0/cmake/OpenCVModule.cmake:729 (_ocv_create_module) E:/Program Files/opencv/opencv/source/opencv-3.2.0/cmake/OpenCVModule.cmake:940 (ocv_create_module) E:/Program Files/opencv/opencv/source/opencv_contrib-3.2.0/modules/xfeatures2d/CMakeLists.txt:2 (ocv_define_module)

推荐答案

在使用cmake中的contrib生成opencv解决方案时,我遇到了同样的问题.

I had the same issue with generating the opencv solution with contrib in cmake.

对我来说,解决方案是:

For me the solution was:

  • 删除构建目标文件夹的内容,
  • 重新启动cmake
  • 取消选中3个选项:BUILD_opencv_world,,ENABLE_PRECOMPILED_HEADERS

说实话,我不知道到底是怎么回事,但我会尽力给出一个有根据的猜测.

To be honest I don't know what is exactly going on but I'll try to give an educated guess.

问题似乎是,当尝试构建opencv和opencv_contrib的世界"模块时,需要预编译的标头,而这些标头在opencv_contrib的源包中不存在.指示是,一旦检查BUILD_opencv_contrib_world和BUILD_opencv_world,选项ENABLE_PRECOMPILED_HEADERS就会消失.显然,预编译头文件(..._ pch.cpp)丢失了.

The problem seems to be, that when trying to build the "world" modules of opencv and opencv_contrib precompiled headers are needed, which are missing in the source package of opencv_contrib. The indication for that is, that as soon as BUILD_opencv_contrib_world and BUILD_opencv_world are checked the option ENABLE_PRECOMPILED_HEADERS disappears. And obviously the precompiled headers (..._pch.cpp) are missing.

这篇关于使用cmake构建opencv3.2时出错的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆