【问题标题】:Installing openCV 2.4 for C/C++ for Visual Studio为 Visual Studio 安装 openCV 2.4 for C/C++
【发布时间】:2012-07-16 15:41:06
【问题描述】:

我整天都在尝试为 C/C++ 的 Windows 7 上的 Visual Studio 2010 安装 OpenCV(版本 2.4.1 和 2.4.2)。

我一直在关注这个教程:http://docs.opencv.org/trunk/doc/tutorials/introduction/windows_install/windows_install.html

我跳过了安装第 3 方软件(python 2.7 和 zlib 除外:http://gnuwin32.sourceforge.net/packages/zlib.htm)。

我运行 cmake,然后从 openCV 构建目录打开 openCV.sln,等待 Visual Studio 加载然后构建它。 Visual Studio 给出了 20000 个错误,只是以下两个重复了很多次:

错误 C1083:无法打开包含文件:'unistd.h':没有这样的文件或目录

错误 LNK1104:无法打开文件 '....\lib\Debug\opencv_core241d.lib'

“OpenCV 构建目录”/bin/Release 不包含任何*.exe 文件,只有大量的*.pdb 文件,其中我可以看到contours.pdb。教程说我应该在那里看到 contours.exe。

由于没有 *.exe 文件,我知道我在构建过程中遇到的两个错误很严重。如果有任何想法可以帮助我解决这些问题,我将不胜感激。

【问题讨论】:

标签: c++ c visual-studio-2010 opencv


【解决方案1】:

以下对构建步骤的解释应该可以帮助您构建它:

  1. 安装 cmake - 这是所有平台所必需的

  2. cd 进入解压后的目录并创建一个名为 release(或任何其他名称)的新目录

  3. 从此目录运行cmake ..

  4. 您应该在发布目录中找到一个 OpenCV.sln 文件。

  5. 用 Visual Stuido 打开它并运行构建。

  6. 继续享受 Opencv

【讨论】:

  • 我在第 3 步遇到了问题:cmake 显示 CMakeList.txt 丢失,但我刚刚再次尝试,它成功了。 我认为问题可能是我没有重新启动 cmake 并且它缓存了我尝试过的其他来源的一些东西。非常感谢!
【解决方案2】:

我也遇到了一些困难 - 文档只是稍微过时了。

此解决方案基于本教程: http://opencv.willowgarage.com/wiki/VisualC%2B%2B_VS2010_CMake

这是我使用 Visual C++ 2010 Express 获得 opencv 2.4.2 hello world 示例的具体步骤:

获取源代码

下载opencv。

将opencv解压到C:\

构建二进制文件

下载 cmake。 打开 cmake gui..

源码在哪里:C:/opencv

构建二进制文件的位置:C:/opencv/build

单击配置 - 对于生成器,选择 Visual Studio 10 点击生成。

在 C:\opencv\build 中,您现在应该可以看到 OpenCV.sln。

使用 VS C++ Express 打开解决方案文件并构建它。

设置 hello world 项目

在 VS 中创建一个新项目。选择控制台应用程序并勾选预编译头文件。 右键单击解决方案文件并选择属性。

在 VC++ 目录窗口中,添加以下内容:

包含目录:C:\opencv\build\include;C:\opencv\build\include\opencv;C:\opencv\build\include\opencv2

图书馆目录: C:\opencv\build\lib\Debug

源目录: C:\opencv\build\include

在 C++ -> Linker -> Input 中,将以下内容添加到 Additional Dependencies:

opencv_core242d.lib
opencv_highgui242d.lib

Hello World 内容

将教程中建议的内容更改为:

#include "stdafx.h"
#include <cv.h>
#include <cxcore.h>
#include <highgui.h>

int _tmain(int argc, _TCHAR* argv[])
{
        IplImage *img = cvLoadImage("funny-pictures-cat-goes-pew.jpg");
        cvNamedWindow("Image:",1);
        cvShowImage("image:",img);

        cvWaitKey();
        cvDestroyWindow("Image:");
        cvReleaseImage(&img);

        return 0;
}

将图像(或任何图像)放在您的项目目录中。

现在构建并点击调试,它应该可以工作。 希望这对某人有所帮助。

【讨论】:

    【解决方案3】:

    我不能发表评论,所以我必须作为答案。

    @go4sri 我按照你说的用 Visual Studio 2010 编译 OpenCV,但我不知道如何配置属性文件以及放在 Library 目录中的文件夹,包括目录... 我需要一些帮助。

    此刻我放了:

    C:\opencv\build\include 在包含目录中

    库目录中的C:\opencv\Release\lib\Debug。 (我构建到 Release 文件夹中)

    但我得到未解析的外部符号。

     error LNK2019: unresolved external symbol "public: static class cv::MatExpr __cdecl  cv::Mat::zeros(int,int,int)" (?zeros@Mat@cv@@SA?AVMatExpr@2@HHH@Z) referenced in function "public: void __thiscall CtestDlg::OnBnClickedOk(void)" (?OnBnClickedOk@CtestDlg@@QAEXXZ)
    

    编辑 1:

    我通过在输入链接器->输入-> 附加依赖项中添加 .lib 解决了这个问题,但现在我遇到了另一个问题。它告诉我找不到dll opencv_core242d.dll。

    编辑2:

    将所有 dll 放入发布(用于发布)或调试(用于调试 dll)中解决了问题,但我不明白为什么我必须这样做。它找不到自己的dll在哪里??

    【讨论】:

    • 您正在动态链接。要获取 dll,您需要将目录添加到您的路径:MyComputer-&gt;Advanced System Settings-&gt;Environment Variables. Edit PATH 并添加包含您的 Dll 的文件夹。重新启动命令窗口/应用程序/视觉工作室,你应该很高兴。注意:如果您需要发布和调试 DLL,则需要将两者都添加到 PATH。另一方面:将@go4sri 放入答案中会NOT 通知我 - 它仅适用于 cmets :)
    • @go4sri 如您所说,我输入了环境变量的路径(发布和调试)。在当前用户和系统中,但它仍然看不到 dll。在 Visual Studio 中有什么要配置的吗? PS:我不知道如何在“答案”中通知。我想我不能,而且我没有足够的理由发表评论……还没有^^。
    • 我也知道我的环境变量可以工作,因为我可以使用 shell 访问目录。
    • 你的路径变量的值是多少? (您可以使用echo %PATH% 显示它)
    • 您必须将PATH 设置为C:\opencv\Release\bin\Debug。不是OPENCV_DIRDB
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-25
    • 1970-01-01
    • 2017-04-05
    • 2018-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多