使用cmake构建opencv3.2时出错 [英] error in using cmake to build 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屋!