使用cmake构建opencv3.2时出错

时间:2017-05-04 02:03:54

标签: opencv3.0

我想使用opencv3.2的contrib部分,所以我必须从源代码构建它。这是我的设置: windows10,vs2013,cmake-gui-3.8.1。 在cmake-gui中配置后,我点击生成器按钮,我收到下面的错误信息。我是opencv的新手,我无法弄清楚如何解决它。任何可以提供帮助的人,谢谢。

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

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:/ 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)

1 个答案:

答案 0 :(得分:1)

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

对我而言,解决方案是:

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

说实话,我不知道到底发生了什么,但我会尝试做出有根据的猜测。

问题似乎是,当尝试构建opencv和opencv_contrib的“world”模块时,需要预编译头文件,这些文件在opencv_contrib的源包中缺失。对此的指示是,一旦选中了BUILD_opencv_contrib_world和BUILD_opencv_world,选项ENABLE_PRECOMPILED_HEADERS就会消失。显然,预编译的头文件(..._ pch.cpp)丢失了。