2015-04-10 2 views
0

Уважаемые эксперты StackOverFlow, Я искал и искал решение этой проблемы, но не нашел ответа. Я нашел людей с похожими вопросами, но не ответил. Я смиренно прошу вашего прощения, если я упустил решение. При этом я прошу вас, пожалуйста, рассмотреть мое заявление.Visual Studio 2010 64bit Library Build

У меня есть простой тестовый код для OpenCV 2.4.11 в Visual Studio 2010 x64

#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 \ построить \ включать \ opencv2/core/types_c.h (55): фатальная ошибка C1083: невозможно открыть файл include: '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 \ построить \ включать \ opencv2/ядро ​​/ types_c.h (56): фатальная ошибка C1083: не удается открыть файл включать: 'stdlib.h': Нет такого файла или каталога

явно что-то не установлен правильно для Visual Studio 2010, поскольку он не может найти эти библиотеки. Может кто-то сказать, как исправить эту проблему в Visual Studio 2010 x64. Спасибо за вашу помощь.

+0

Щелкните правой кнопкой мыши проект в VS, выберите «Свойства» и выберите «Каталоги VC++» в меню левой стороны. Что вы видите в разделе «Включить каталоги»? – Mewa

+0

Mewa Спасибо, что ответили ... В каталогах VC++ включены каталоги: C: \ opencv \ build \ include; C: \ opencv \ build \ include \ opencv; C: \ opencv \ build \ include \ opencv2; $ (IncludePath) – thiirane

+0

Я должен добавить, что я могу успешно запустить этот код в Visual Studio 2013 Community, но по какой-то причине я не могу заставить его работать в Visual Studio 2010 Professional. – thiirane

ответ

0

Для вашего случая вам нужно включить только opencv2/opencv.hpp, чтобы заставить его работать.

Кроме того, поскольку вы используете C++, настоятельно рекомендуется использовать API C++ OpenCV по сравнению с устаревшим API C. Код будет как:

#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.

+0

Здравствуйте, Herohuyongtao, я попробовал ваше предложение. Ошибка не изменилась. Существует журнал 1> ------ Сборка запущена: Проект: OpenCVTest, Конфигурация: Отладка x64 ------ 1> Сборка запущена 10.10.2010 8:46:31. 1> InitializeBuildStatus: 1> Прикосновение к «x64 \ Debug \ OpenCVTest.unsuccessfulbuild». 1> ClCompile: 1> Main.cpp 1> C: \ opencv \ build \ include \ opencv2/core/types_c.h (55): фатальная ошибка C1083: Не удается открыть файл include: 'assert.h ': Нет такого файла или каталога 1> 1> Build FAILED. 1> 1> Истекшее время 00: 00: 00.60 ================================================================================================================ Сборка: = – thiirane

+0

@thiirane Итак, вы должны следовать [этому сообщению] (http://www.anlak.com/2012/10/using-opencv-2-4-x-with-visual-studio-2010-tutorial.html) для правильной установки OpenCV с VS. – herohuyongtao

+0

Сэр, я знаю, что вы пытаетесь помочь. Очень с уважением. Я делал это снова и снова. Как я уже сказал, я сделал чистую установку сообщества Visual Studio 2013 и смог заставить его работать, поэтому я уверен, что OpenCV установлен правильно. Библиотеки, которые ищет Visual Studio 2010, не являются библиотеками OpenCV. Мне нужно изменить путь Visual Studio 2010 (где-нибудь), чтобы указать на библиотеки C++ assert.h, stdlib.h ... и т. Д. Где эти библиотеки находятся? Являются ли эти библиотеки SDK? – thiirane

Смежные вопросы