我正在尝试从git存储库构建openCV版本2.4.9。我按照说明运行cmake-gui来构建可视化工作室解决方案。然后我在相关和调试模式下构建了VS studio解决方案,然后运行安装版本。
安装版本将所有已编译的库与include文件夹一起放入安装文件夹。
问题是include文件夹完全错误并且丢失了许多文件。当我将include文件夹路径添加到HelloWorld项目时,它找不到任何opencv方法类等。
好像cmake构建过程已经以某种方式损坏,并且没有正确地准备包含所需头文件的include文件夹。
我已经为VS 2010和VS 2012 cmake配置尝试了这个,并得到了相同的结果。一切都编译得很好,然而安装目录中的头文件不对。
从预先构建的Windows安装工作中复制头文件,我很困惑为什么构建过程不会导致头文件的类似文件夹结构。
答案 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,这让我感到头疼......