6

我整天都在尝试为 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 文件,我知道我在构建过程中遇到的两个错误很关键。我将不胜感激任何可以帮助我解决它们的想法。

4

3 回答 3

5

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

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

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

  3. 从这个目录,运行cmake ..

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

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

  6. 继续享受 Opencv

于 2012-07-18T04:47:30.100 回答
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

你好世界内容

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

#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;
}

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

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

于 2012-07-23T18:34:42.733 回答
1

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

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

目前我把:

包含目录中的 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在哪里?

于 2012-07-19T00:56:34.767 回答