我正在尝试使用已构建并安装了gflags,然后是glog和ceres-solver的sfm模块来构建opencv。但make日志显示:模块opencv_sfm已禁用,因为未找到以下依赖项:Glog / Gflags 。即使在较早的几行中,它也说可以找到这些目录。
我也已经构建并安装了VTK,尽管由于某些原因,即使我手动选择构建目录也找不到它。
以下是我的CMake日志的相关部分:
找不到VTK。请在CMake中将-DVTK_DIR设置为VTK构建目录,或使用VTKConfig.cmake文件将其设置为VTK安装子目录
OpenCV Python:在开发过程中附加到PYTHONPATH:C:/DEV/opencv-4.2.0/builds/python_loader
咖啡:不
Protobuf:不
Glog:是
freetype2:不
harfbuzz:不
模块opencv_ovis被禁用,因为未找到OGRE3D
没有使用导出的gflags CMake配置集的偏好,也没有提供包含/库目录的提示。默认情况下,首选安装/导出的gflags CMake配置。
找到已安装的gflags版本:C:/ Program Files(x86)/ gflags / lib / cmake / gflags
检测到的gflags版本:2.2.2
检查SFM部门...错误
模块opencv_sfm已禁用,因为未找到以下依赖项:Glog / Gflags
答案 0 :(得分:0)
我设法使SFM模块最终得以编译。我并不能100%地解决它,但是我做了以下事情:我删除了gflags,glog和ceres-solver的所有版本。我下载了较旧的ceres-solver(1.14)和VTK(8.2.0)。早期版本可能与使用opencv4.2和python 3.7有关。
我将带有egen的gflags和glog放在ceres-solver文件夹中。然后使用CMake和Visual Studio 2019在调试和发布中构建并安装了gflags。 glog(链接到gflag)仅在发行版中。最后,我构建并安装了链接到glog,gflags和本征的ceres-solver。遵循本教程:http://sylvain.duchene.im/how-to-build-ceres-under-windows/
然后,当我使用CMake通过contribs库构建openCV4.2时,我发现了sfm模块和VTK。