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