Visual Studio 2010 64位库构建

时间:2015-04-10 22:16:10

标签: c++ visual-studio-2010 opencv windows-7-x64

亲爱的StackOverFlow专家, 我搜索并搜索了这个问题的解决方案,但没有找到答案。我找到了有类似问题而不是答案的人。如果我忽视了一个解决方案,我谦卑地请求你的原谅。有了这个,我请你考虑我的提交。

我在Visual Studio 2010 x64中有一个简单的OpenCV 2.4.11测试代码

#include <opencv\cv.h>
#include <opencv\highgui.h>
#include <opencv2\opencv.hpp>
#include <opencv2\core\types_c.h>
using namespace cv;

int main(){

IplImage* img=cvLoadImage("C:\\Users\\Russ\\Pictures\\3-7-15\\_DSC8489.jpg"); //change the name

       cvNamedWindow("Example1",CV_WINDOW_NORMAL );

cvShowImage("Example1",img);

cvWaitKey(0);
cvReleaseImage(&img);
cvDestroyWindow( "Example1");

return 0;

}

当我构建这个时,我收到错误

C:\ opencv \ build \ include \ opencv2 / core / types_c.h(55):致命错误C1083:无法打开包含文件:'assert.h':没有这样的文件或目录

所有opencv包含都包含在我的属性路径中,我的OpenCV库也包含在内。当我打开types_c.h文件时,我看到以下

/*M///////////////////////////////////////////////////////////////////////////////////////
//
//  IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
//
//  By downloading, copying, installing or using the software you agree to this license.
//  If you do not agree to this license, do not download, install,
//  copy or use the software.
//
//
//                          License Agreement
//                For Open Source Computer Vision Library
//
//M*/

#ifndef __OPENCV_CORE_TYPES_H__
#define __OPENCV_CORE_TYPES_H_
#if !defined _CRT_SECURE_NO_DEPRECATE && defined _MSC_VER
#  if _MSC_VER > 1300
#    define _CRT_SECURE_NO_DEPRECATE /* to avoid multiple Visual  Studio 2005 warnings  */
#  endif
#endif

#ifndef SKIP_INCLUDES
#include <assert.h>
#include <stdlib.h>
#include <string.h>
#include <float.h>

#if !defined _MSC_VER && !defined  __BORLANDC__
#  include <stdint.h>
#endif

#...

由于assert.h用于调试,我决定注释掉assert.h行。当我再次构建代码时,我遇到了这个错误。

C:\ opencv \ build \ include \ opencv2 / core / types_c.h(56):致命错误C1083:无法打开包含文件:'stdlib.h':没有这样的文件或目录

显然,Visual Studio 2010没有正确设置某些内容,因为它无法找到这些库。有人可以告诉如何在Visual Studio 2010 x64中解决此问题。谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

对于您的情况,您只需要包含opencv2/opencv.hpp即可使其正常运行。

此外,由于您使用的是C ++,因此强烈建议您使用OpenCV的C ++ API而不是弃用的C API。代码如下:

#include <opencv2/opencv.hpp>

int main()
{
    cv::Mat img = cv::imread("C:\\Users\\Russ\\Pictures\\3-7-15\\_DSC8489.jpg");

    cv::namedWindow("Example1", CV_WINDOW_NORMAL);
    cv::imshow("Example1", img);
    cv::waitKey(0);

    cv::destroyWindow("Example1");

    return 0;
}

<强>更新 如果您仍遇到问题,则应按照this post正确设置OpenCV VS.