3

我正在尝试从 git 存储库构建 openCV 版本 2.4.9。我已按照说明运行 cmake-gui 来构建 Visual Studio 解决方案。然后我在发布和调试模式下构建了 VS studio 解决方案,然后运行安装构建。

安装构建将所有已编译的库与包含文件夹一起放入安装文件夹。

问题是包含文件夹完全错误并且缺少许多文件。当我将包含文件夹路径添加到 HelloWorld 项目时,它找不到任何 opencv 方法类等。

就好像 cmake 构建过程已以某种方式损坏,并且没有正确准备包含所需头文件的包含文件夹。

我已经对 VS 2010 和 VS 2012 cmake 配置进行了尝试,并得到了相同的结果。一切都编译得很好,但是安装目录中的头文件不正确。

从预构建的 Windows 安装类工作中复制头文件,我很困惑为什么构建过程不会导致头文件的类似文件夹结构。

4

2 回答 2

2

这确实是一个错误,已经报告 了两次。第一个链接的描述提供了修复:

此行的正则表达式不再正确: https ://github.com/Itseez/opencv/blob/master/cmake/OpenCVModule.cmake#L520

它应该被替换为:/ [/]+.h( ..)?$

于 2013-03-21T12:07:16.240 回答
2

我将更新这篇文章以使其与最新的 git 版本的 opencv 保持同步。

在当前版本中,该错误仍然存​​在,现在位于 cmake/OpenCVModule.cmake 的第 538 行。建议的解决方案是替换实际的 538 行:

if(hdr2 MATCHES "^(opencv2/.*)[^/]+.h(..)?$" AND NOT hdr2 MATCHES "opencv2/${the_module}/private.*")

经过

if(NOT hdr2 MATCHES "opencv2/${the_module}/private.*" AND hdr2 MATCHES "^(opencv2/?.*)/[^/]+.h(..)?$" )

非常感谢这个补丁的作者,让我免了头晕……

于 2013-04-29T18:47:43.610 回答