【问题标题】:Building Opencv 2.4.9 with VS 2012, install generates incorrect header files用VS 2012构建Opencv 2.4.9,安装生成不正确的头文件
【发布时间】:2013-04-30 02:47:43
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

    标签: opencv build visual-studio-2012


    【解决方案1】:

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

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

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

    【讨论】:

    • 啊,很高兴知道code.opencv.org,奇怪的是我之前没有在搜索中结束过。
    【解决方案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(..)?$" )
    

    非常感谢这个补丁的author 让我免了头晕......

    【讨论】:

      猜你喜欢
      • 2012-07-15
      • 2015-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-31
      • 2016-02-25
      • 1970-01-01
      相关资源
      最近更新 更多