Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
构建并安装OpenCV。默认安装路径与头文件预期的路径不同_Opencv_Cmake - Fatal编程技术网

构建并安装OpenCV。默认安装路径与头文件预期的路径不同

构建并安装OpenCV。默认安装路径与头文件预期的路径不同,opencv,cmake,Opencv,Cmake,刚刚构建并安装了OpenCV。我现在正试图包括它的标题,我遇到了麻烦 在没有任何选项的情况下调用cmake将生成一个带有 CMAKE\u INSTALL\u前缀/usr/local 但是,主OpenCV标题具有以下行 [vorac@laptop build]$ cat /usr/local/include/opencv2/opencv.hpp #include "opencv2/core.hpp" 搜索到的文件位于父目录中,因此无法包含: [vorac@laptop build]$ ls

刚刚构建并安装了OpenCV。我现在正试图包括它的标题,我遇到了麻烦

在没有任何选项的情况下调用
cmake
将生成一个带有
CMAKE\u INSTALL\u前缀/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
安装出了什么问题

使用的软件:
软呢帽18
ccmake版本2.8.10.2

OpenCV commit 416FB505949003DBA822A59FBC77B2D5B4E99F1A5

我更愿意发表评论,因为这比其他任何东西都更具猜测性,但它太大了,可能会对您有所帮助。因此,看起来这可能不是您所做的事情,更像是OpenCV cmake代码中的一个bug

对“cmake/OpenCVModule.cmake”的更改似乎影响了包含文件的安装。如果新的正则表达式失败,
${CMAKE\u MATCH\u 1}
的值可能为空,这意味着下面的行将把模块的头安装到
${OPENCV\u INCLUDE\u install\u PATH}
(默认为/usr/local/INCLUDE)

我注意到旧的regex
“^(opencv2/*)/[^/]+.h(..)?$”
(opencv2/*)
之后有一个
/
,而新的没有

我建议更改有问题的行,包括可能缺少的
/

if(hdr2 MATCHES "^(opencv2/.*)/[^/]+.h(..)?$" AND NOT hdr2 MATCHES "opencv2/${the_module}/private.*") 
或者将整行恢复到以前的版本:

if(hdr2 MATCHES "^(opencv2/.*)/[^/]+.h(..)?$")

之后,重新运行CMake并再次安装OpenCV。

您是否检查了编译器中的代码是否指向了正确的文件位置?特别是在结尾处,请参见此设置MVS@GPPK这里的问题是OpenCV头希望其他OpenCV头存在于一个名为“opencv2”的目录中,而它们没有。所以问题纯粹在于OpenCV及其安装。@Fraser,是的,在stable 2.4中,标题位于$prefix/opencv2/中的文件夹中。在不稳定的主机中,它们只是在$prefix中没有结构地转储。我通过克隆origin/2.4-稳定分支修复了我的问题。大师是尚未出生的2.5。不过,我会试试你的建议。@Vorac如果你试了我的答案,但答案是错误的,你能回到这里并添加评论/否决票,这样我就可以删除这个吗?