2010-09-18 12 views
10

मैंने माइक्रोसॉफ्ट विजुअल सी ++ एक्सप्रेस संस्करण, संस्करण 9.0.3072 9 .1 एसपी स्थापित किया है। इसके साथ आने वाली कमांड लाइन कंपाइलर 80x86 के लिए संस्करण 15.00.30729.01 पर है। मैंने ओपनसीवी 20.0 ए स्थापित किया है।"cl.exe" (विजुअलस्टूडियो से कमांड लाइन कंपाइलर) और हेडर फाइलों के साथ कठिनाइयों!

मैं निम्नलिखित कार्यक्रम संकलित करने के लिए करना चाहते हैं:

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

बात है, मैं नहीं विज़ुअल सी की ++ "दृश्य" पहलू का उपयोग करना चाहते, मैं कमांड लाइन संकलक है जो उपयोग करना चाहते हैं "cl.exe"।

जब मैं इस कार्यक्रम को संकलित करने का प्रयास करें, मैं त्रुटि मिलती है:

C:\visualcpp>cl OpenCV_Helloworld.cpp 
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 15.00.30729.01 for 80x86 Copyright (C) Microsoft Corporation. All rights reserved. 

OpenCV_Helloworld.cpp 
OpenCV_Helloworld.cpp(6) : fatal error C1083: Cannot open include file: 'cv.h': No such file or directory 

तो मैं साथ specifiy करने की कोशिश की/मैं इस

C:\visualcpp>cl /I "C:\OpenCV2.0\src\cv" OpenCV_Helloworld.cpp 

और विविधताओं उसके पसंद है, इस उम्मीद में कि/मैं किसी भी तरह cl.exe कहूंगा जहां cv.h है, लेकिन मुझे एक ही त्रुटि मिलती है।

एक साइड नोट के रूप में, मुझे नहीं पता कि यह संबंधित है या नहीं, लेकिन मैंने देखा कि "सी: \ ओपनसीवी 2.0 \ src \" में कोई फ़ाइल "cv.h" नहीं है, बल्कि "_cv" ज "! तो मैंने तदनुसार हेडर बदल दिया, लेकिन फिर भी।

मुझे लगता है कि मैं कुछ हद तक सी ++ में प्रोग्राम करने में सक्षम हूं लेकिन मुझे समझ में नहीं आता है कि विशेष रूप से cl.exe के साथ हेडर/लिंकर फ़ाइल स्थानों को कैसे निर्दिष्ट किया जाए क्योंकि मैंने पहले ही जीसीसी का उपयोग किया है और मुझे नहीं लगता कि मुझे पता है मैं अभी क्या कर रहा हूँ कृपया इसे संकलित करने में मेरी मदद करें! मैं ओपनसीवी में शुरू करना चाहता हूं।

उत्तर

-5

विजुअल स्टूडियो का कोई दृश्य पहलू नहीं है। यह सिर्फ एक नाम है। सभी सी ++ प्रोग्राम cl.exe के साथ संकलित किए जाते हैं। सी ++ कंपाइलर को किसी भी दृश्य के बारे में कोई जानकारी नहीं है - यह सिर्फ एक ब्रांड है। cl.exe को केवल विजुअल स्टूडियो के भीतर से ही बुलाया जा सकता है। यह कमांड लाइन कंपाइलर नहीं है।

+4

आपको यह विचार क्यों मिला कि सीएल केवल विजुअल स्टूडियो के भीतर से ही बुलाया जा सकता है - यह काफी सादा गलत है। सीएल को निश्चित रूप से कमांड लाइन से बुलाया जा सकता है, उदाहरण के लिए जब मेकफ़ाइल, जाम फाइलों, स्कैन इत्यादि के माध्यम से, या अन्य निर्माण वातावरण में उपयोग किया जाता है। –

+1

http://msdn.microsoft.com/en-us/library/ms235639(VS.80).aspx - वह क्या है, नियमित कमांड लाइन का उपयोग नहीं कर सकता? – Puppy

10

सबसे पहले, विजुअल स्टूडियो के साथ आने वाली बैच फ़ाइलों में से किसी एक को कॉल करके पर्यावरण स्थापित करना सुनिश्चित करें, यानी सामान्य 7 \ Tools के तहत अपने विजुअल स्टूडियो फ़ोल्डर में पाए गए vsvars32.bat। स्थापना के दौरान, आम तौर पर एक प्रारंभ मेनू प्रविष्टि भी बनाई जाती है जो एक कंसोल खोलता है और सेटअप स्क्रिप्ट निष्पादित करता है। Compiler Command-Line Syntax

: यह सुनिश्चित करें कि वातावरण चर ठीक तरह से स्थापित कर रहे हैं और संकलक और लिंकर फ़ाइलें, पुस्तकालयों हेडर की पहुंच है कर देगा, उपकरण आप सीएल कमांड लाइन यहाँ प्रलेखन के लिए सूचीबद्ध विकल्पों मिलेगा अपने पथ आदि

पर हैं

ओपनसीवी के लिए: ओपनसीवी की निर्देशिका संरचना पर एक नज़र डालें। यह

OpenCVRootFolder\include\opencv\cv.h 

तो आप आमतौर पर आगे जाना है और कह सकते हैं कि क्या है:

cl /I"X:\OpenCVRootFolder\include" [...] source.cpp /LINK [...] 

और अपने कोड में, के माध्यम से सीवी हैडर में शामिल हैं:

#include <opencv\cv.h> 

...या आप बस आगे जा सकते हैं और

cl /I"X:\OpenCVRootFolder\include\opencv" [...] source.cpp /LINK [...] 

करते हैं और सरल शामिल

#include <cv.h> 

मैं हालांकि, नहीं दिख रहा है यही कारण है कि आप दृश्य स्टूडियो का उपयोग नहीं करना चाहते। यह सिर्फ एक आईडीई है, यदि आप उन्हें नहीं चाहते हैं तो आपके लिए कोई सुविधा नहीं है या शामिल है।

संबंधित मुद्दे