在Windows 7(64位)上配置opencv 2.2时出现问题:

时间:2011-08-07 01:40:51

标签: visual-studio-2010 opencv

我有Windows 7(64位),我正在尝试为Microsoft Visual Studio 2010配置opencv 2.2,我按照书中OpenCV 2 Computer Vision Application Programming Cookbook给出的说明,但它不起作用,我执行了以下步骤:

  1. 使用cmake编译opencv 2.2,(源代码:C:/OpenCV-2.2.0,在哪里构建二进制文件:C:/OpenCV-2.2.0/build)
  2. 打开OpenCV.sln(由cmake在文件夹C:\ OpenCV-2.2.0 \ build中编译而成,这是在visual studio中打开的,我构建它(构建结果:没有错误) ,很少有警告)。
  3. 将新属性表添加到我的项目中,并在VC ++目录中的“包含目录”下,我给出C:\ OpenCV-2.2.0 \ include \ opencv的路径,并在“库目录”下给出路径我的lib文件,即C:\ OpenCV-2.2.0 \ build \ lib \ Debug。
  4. 在Input下的链接器选项卡中,包含以下附加依赖项:

    opencv_core220d.lib

    opencv_highgui220d.lib

    opencv_features2d220d.lib

    opencv_calib3d220d.lib

  5. 根据书上的说明,现在一切都应该正确配置,但是当我包含头文件时,(在输入(Hash)include(尖括号)之后)intellisense只给出:

    #include <cxcore.h>
    #include <cv.h>
    

    但它本应显示

    #include <opencv2/core/core.hpp>
    

    当我写

    #include <opencv2/core/core.hpp>
    
    它给我的错误无法打开源文件     “opencv2 / core / core.hpp”, 如果我包括

    #include <cv.h >
    

    我遇到了11个错误:

    1.  IntelliSense: cannot open source file "opencv2/core/core_c.h"   c:\opencv-    2.2.0\include\opencv\cv.h 63  1   
    
    2.  IntelliSense: cannot open source file "opencv2/core/core.hpp"   c:\opencv-2.2.0\include\opencv\cv.h 64  1   
    
    3.  IntelliSense: cannot open source file "opencv2/imgproc/imgproc_c.h" c:\opencv-2.2.0\include\opencv\cv.h 65  1   
    
    4.  IntelliSense: cannot open source file "opencv2/imgproc/imgproc.hpp" c:\opencv-2.2.0\include\opencv\cv.h 66  1   
    

    [其余错误与上述错误类似。]

    我没有在C / C ++下包含任何内容 - &gt;一般 - &gt;附加包含目录 在属性表中,是否需要包含任何内容???

    有人可以告诉我,我在配置过程中做错了吗?

    是否有专门用于在visual studio 2010上在Windows 7(64位)上配置opencv 2.2的指南?

4 个答案:

答案 0 :(得分:2)

Maximus解决方案听起来像喷雾和祈祷尝试。

我干净地只将[opencvDir] \ include添加到我的visual studio包含,这一切都很好。 包括你的语法

#include <opencv2/core/core.hpp>

工作得很好,就是我怎么做的。我所做的其余步骤正是你所描述的,除了我有不同的项目与不同的并行opencv安装,所以我没有将OpenCV添加到我的全局环境变量“PATH”,而是我选择性地使用OpenCV为每个项目通过选择Project Properies(右键单击项目,选择属性)=&gt;调试=&gt; “环境”:设置为PATH = $(SolutionDir)依赖关系\ opencv2.2 \ x86 \ bin“(在我的情况下),”合并环境“为”是“

这是必要的,所以opencv会发现它的DLL,以防你链接非静态。

希望有所帮助:)

答案 1 :(得分:1)

您需要两个包含目录。对我来说,C:\ OpenCV2.2 \ include和C:\ OpenCV2.2 \ include \ opencv

答案 2 :(得分:0)

尝试在C:\ opencv-2.2.0 \ modules \ module_name \ include中包含所有目录 例如,在你的情况下它可能是 C:\的OpenCV-2.2.0 \模块\芯\包括\ C:\的OpenCV-2.2.0 \模块\ imgproc \包括\ 还有很多。您应该使用命令行来获取C:\ opencv-2.2.0 \ modules中的目录列表。每次添加后包括。 我不知道为什么会发生这种情况..

答案 3 :(得分:0)

在我的资产页面中,
在C / C ++中 - &gt;成瘾包括目录
我正在使用“%OPENCV_DIR \ build \ include”
用真实路径代替用intellisense解决问题:
“C:\ opencv \ build \ include”

我正在运行opencv 2.4.2和Visual Studio 2010 SP1。