刚刚构建了OpenCV并安装了它。我现在正试图包含它的标题并遇到麻烦。
在没有任何选项的情况下调用cmake
会产生与配置的配置
CMAKE_INSTALL_PREFIX /usr/local
然而,主要的OpenCV标题,具有类似
的行[vorac@laptop build]$ cat /usr/local/include/opencv2/opencv.hpp
#include "opencv2/core.hpp"
搜索到的文件位于父目录中,因此无法包含:
[vorac@laptop build]$ ls /usr/local/include | grep core.hpp
core.hpp
motion_core.hpp
安装出了什么问题?
使用的软件:
Fedora18
ccmake版本2.8.10.2
OpenCV commit 416fb50594003dba822a59fbc77b2d5b4e99f1a5
答案 0 :(得分:1)
我更倾向于将此作为评论,因为它比其他任何内容更具推测性,但它太大了,可以帮助你。所以,看起来它可能不是你做过的事情,更像是OpenCV cmake代码中的错误。
commit #5170620看起来像“cmake / OpenCVModule.cmake”的更改影响了包含文件的安装。如果新的正则表达式失败,${CMAKE_MATCH_1}
的值可能为空,这意味着以下行将模块的标题安装到${OPENCV_INCLUDE_INSTALL_PATH}
(默认情况下为/ usr / local / include)。
我注意到旧的正则表达式"^(opencv2/.*)/[^/]+.h(..)?$"
在/
之后有一个(opencv2/.*)
,而新的正则表达式/
没有。{/ p>
我建议更改相关行,以包含可能缺少的if(hdr2 MATCHES "^(opencv2/.*)/[^/]+.h(..)?$" AND NOT hdr2 MATCHES "opencv2/${the_module}/private.*")
:
if(hdr2 MATCHES "^(opencv2/.*)/[^/]+.h(..)?$")
或将整行还原为以前的版本:
{{1}}
之后,重新运行CMake并再次安装OpenCV。