使用VS 2012构建Opencv 2.4.9,安装会生成不正确的头文件

时间:2013-03-21 11:52:10

标签: opencv build visual-studio-2012

我正在尝试从git存储库构建openCV版本2.4.9。我按照说明运行cmake-gui来构建可视化工作室解决方案。然后我在相关和调试模式下构建了VS studio解决方案,然后运行安装版本。

安装版本将所有已编译的库与include文件夹一起放入安装文件夹。

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

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

我已经为VS 2010和VS 2012 cmake配置尝试了这个,并得到了相同的结果。一切都编译得很好,然而安装目录中的头文件不对。

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

2 个答案:

答案 0 :(得分:2)

这确实是一个错误,它一直是reported twice。第一个链接的描述提供了修复:

  

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

     

应替换为: / [/] +。h(..)?$

答案 1 :(得分:2)

我将更新此帖子,以使其与最新的opencv git版本保持同步。

在当前版本中,该bug仍然存在,现在位于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(..)?$" )

非常感谢这个补丁的author,这让我感到头疼......