Visual Studio 2010 64 位库构建

Posted

技术标签:

【中文标题】Visual Studio 2010 64 位库构建【英文标题】:Visual Studio 2010 64bit Library Build 【发布时间】:2015-04-10 22:16:09 【问题描述】:

尊敬的 *** 专家, 我已经搜索并搜索了此问题的解决方案,但没有找到答案。我找到了有类似问题但没有答案的人。如果我忽略了一个解决方案,我谦卑地请求你的原谅。有了这个,我请你考虑我的提交。

我在 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 中解决此问题。感谢您的帮助。

【问题讨论】:

在VS中右击项目,选择“属性”,在左侧菜单中选择“VC++目录”。您在“包含目录”下看到了什么? Mewa 感谢您的回复... VC++ 目录包含目录有 C:\opencv\build\include;C:\opencv\build\include\opencv;C:\opencv\build\include\ opencv2;$(IncludePath) 我应该补充一点,我能够在 Visual Studio 2013 社区上成功运行此代码,但由于某种原因,我无法让它在 Visual Studio 2010 Professional 上运行。 尝试在“包含目录”列表中附加(在您已有的所有内容之后添加;$(VCInstallDir)include。或者,转到“包括目录”并选择“编辑”。手动导航到您的安装目录 - 对我来说,这是 C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include。该包含文件夹似乎包含您缺少的所有内容。 【参考方案1】:

对于您的情况,您只需要包含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 使用 VS 正确设置 OpenCV。

【讨论】:

你好Herohuyongtao,我尝试了你的建议。错误没有变化。有日志 1>----- Build started: Project: OpenCVTest, Configuration: Debug x64 ------ 1> Build started 4/10/2015 8:46:31 PM。 1>InitializeBuildStatus: 1> 触摸“x64\Debug\OpenCVTest.unsuccessfulbuild”。 1>ClCompile: 1> Main.cpp 1>C:\opencv\build\include\opencv2/core/types_c.h(55): 致命错误 C1083: 无法打开包含文件: 'assert.h': 没有这样的文件或目录 1> 1> 构建失败。 1> 1>经过时间 00:00:00.60 ========== 构建:0 成功,1 失败,0 最新,0 跳过 ==========跨度> @thiirane 然后,您应该按照this post 使用 VS 正确设置 OpenCV。 先生,我知道您想帮忙。非常恭敬..我一遍又一遍地这样做。正如我所说,我已经完成了 Visual Studio 2013 Community 的全新安装,并且能够让它工作,所以我确信 OpenCV 安装正确。 Visual Studio 2010 正在寻找的库不是 OpenCV 库。我需要能够更改 Visual Studio 2010 路径(某处)以指向 C++ 库 assert.h、stdlib.h...等...这些库位于何处?这些是 SDK 库吗?

以上是关于Visual Studio 2010 64 位库构建的主要内容,如果未能解决你的问题,请参考以下文章

无法在 Android Studio 下创建 64 位库的 APK

在Visual Studio中使用FFTW库

电脑里的visual studio 2010怎么打开

如何用pcl配置visual studio 2010

Visual Studio Web Developer 2010 Express 和 64 位

Visual Studio 2010 WebDev WebServer (Cassini) 64 位兼容吗?