2010-11-15 15 views
5

मुझे इस शायद सरल प्रश्न का उत्तर नहीं मिला। मुझे अपने कंप्यूटर पर या तो देव सी ++ या वीएस 2010 के साथ काम करने के लिए ओपनसीवी प्राप्त करने में समस्याएं आ रही हैं।ओपनसीवी वीएस 2010 सी ++ सीएमके

मेरा प्रश्न विनिर्देशों के बारे में नहीं है बल्कि इसके बजाय सीएमके प्रक्रिया में योगदान देता है।

मैंने भाषा सीखने, सी ++ कार्यक्रमों के माध्यम से अपना रास्ता काम किया है। हालांकि, मैंने उन्हें लिखा और संकलित किया, सीधे मानक सी का उपयोग कर देव सी ++ पर कोई झगड़ा नहीं, आदि।

अब मैं पुस्तकालयों के अपने पहले तीसरे पक्ष के सेट का उपयोग करने की कोशिश करने आया हूं, इस विशाल प्रक्रिया की है सीएमके का उपयोग करके निष्पादन योग्य डाउनलोड करना, फिर आईडीई में से किसी एक के साथ संकलन करना। मेरे लिए, कोई आश्चर्य नहीं कि बात गलत हो गई है। बहुत सारे कदम और किस उद्देश्य के लिए?

ठीक है, इसलिए मैं प्रोग्रामिंग के बारे में निष्पक्ष और सरल हूं। तो यहां मेरे प्रश्न हैं:

यदि आपको बाद में तीन चरणों का पालन करना है तो निष्पादन योग्य क्यों है? मैं समझता हूं कि क्या लेखकों को पता नहीं है कि हर कोई किस कंपाइलर का उपयोग कर रहा है; लेकिन क्यों न सिर्फ स्रोत कोड का एक साधारण सेट और इसके साथ किया जाना चाहिए?

हालांकि, यदि वीएस 2010 के लिए कोई विशिष्ट फ़ाइल है, तो क्यों न केवल कंप्यूटर पर काम करने के तरीके को स्वयं स्थापित कर दिया है? वैसे ही हर कोई उसी प्रारूप में वीएस 2010 डाउनलोड करता है और फिर यह खुद को स्थापित करता है?

अंत में, भले ही निर्देशिका संरचना बनाने के लिए किसी प्रकार के इंस्टॉलर की आवश्यकता हो (जो कि मुझे अभी भी ज़िप, टैर इत्यादि के बाद से समझ में नहीं आता है), सीएमके की आवश्यकता क्यों है?

मुझे बेवकूफ़ होने और कुछ स्पष्ट बिंदुओं को याद करने के लिए हँसे जाने पर कोई फर्क नहीं पड़ता है, लेकिन मैं त्वरित रिटॉर्ट्स से गुजरने की सराहना करता हूं: यह आपके लिए आसान लग सकता है लेकिन बाहर से, यह नहीं है बहुत समझदारी करो। अग्रिम धन्यवाद, जॉन


धन्यवाद। मुझे लगता है कि यह समझने के लिए प्रक्रिया के ब्योरे के बारे में पर्याप्त समझ में नहीं आता कि यह क्यों जरूरी है। या बल्कि, मैं समझता हूं: अलग-अलग ऑपरेटिंग सिस्टम और विभिन्न कंपाइलर हैं, लेकिन कोडिंग प्रत्येक के लिए अलग है, फिर भी सीएमके संकलित करने वाले कंपाइलर्स को समझता है और इसलिए डेवलपर को केवल सीएमके के लिए लिखने की आवश्यकता है। यदि सीएमके पर्यावरण या कंपाइलर को नहीं समझता है, तो लाइब्रेरी लेखकों या डेवलपर को यह पता लगाना होगा कि इसे उस विशेष वातावरण में कैसे बंद करना है। हालांकि, मुझे अभी भी समझ में नहीं आता क्यों वीएस 2010 के मामले में, ओपनसीवी के पास पहले से ही एक विशेष कंपाइलर है, कि सीएमके आवश्यक है। हालांकि, मैं बस इस पल के लिए अकेला छोड़ दूंगा और आगे बढ़ जाऊंगा।

फिर से धन्यवाद।


मुझे लगता है कि मुझे एक टिप्पणी जोड़ने की आवश्यकता है। सवाल के जवाब में "क्या वास्तव में यह एक मुद्दा है?" मुझे लगता है कि जवाब हाँ होना चाहिए। मैंने वीएस 2010 के साथ काम करने के लिए ओपनसीवी प्राप्त करने की कोशिश कर लगभग एक सप्ताह बर्बाद कर दिया है।

माइक्रोसॉफ्ट वेबसाइटों से स्वतंत्र ब्लॉग तक कोई भी मेरी मदद करने में सक्षम नहीं है। मैं sxstrace, आदि के माध्यम से चला गया है और किसी भी सुझाव दिया है कि सब कुछ करने की कोशिश की। अंत में यह एक ही समस्या है।

तो हाँ यह वास्तव में एक मुद्दा है। मैं इस समय विंडोज प्रोग्रामिंग सीखने की कोशिश नहीं कर रहा हूं। न ही मैं इस समय सीएमके की जटिलताओं को सीखना चाहता हूं। विंडोज़ के लिए स्थापित .exe प्रोग्राम हमेशा मेरे लिए काम करते हैं। मुझे यकीन है कि अपवाद हैं लेकिन व्यक्तिगत रूप से नहीं हैं। तो अगर ओपनसीवी एक विशेष 2008 डाल रहा है।exe संस्करण, क्यों न सिर्फ इसे सभी तरह से काम करते हैं।

Inizio generazione contesto di attivazione:


वैसे, यहाँ sxstrace पाठ फ़ाइल का उत्पादन होता है। Parametro di इनपुट: झंडे = 0 ProcessorArchitecture = 86 CultureFallBacks = यह आईटी, यह ManifestPath = C: \ Windows \ system32 \ cxcore210d.dll AssemblyDirectory = C: \ Windows \ system32 \ आवेदन कॉन्फ़िग फ़ाइल =

जानकारी: एनालिसिस डेल फ़ाइल घोषणापत्र सी: \ विंडोज \ system32 \ cxcore210d.dll corso में। सूचना: l'identità di definizione del manifesto è (शून्य)। INFORMAZIONI: riferimento: Microsoft.VC90.DebugCRT, processorArchitecture = "86", PublicKeyToken = "1fc8b3b9a1e18e3b", type = "Win32", संस्करण = "9.0.21022.8" INFORMAZIONI: risoluzione डेल riferimento Microsoft.VC90.DebugCRT, processorArchitecture = "x86", publicKeyToken = "1fc8b3b9a1e18e3b", टाइप = "win32", संस्करण = "9.0.21022.8" कोरसो में। सूचना: कोरो में प्रोसेसर आर्किटेक्चर x86 प्रति risoluzione del riferimento। सूचना: कोरो में risoluzione del riferimento प्रति ला लिंगुआ तटस्थ। सूचना: courso में applicazione dei criteri di binding। सूचना: मानदंड डी autore non trovati। सूचना: reindirizzamento criteri di binding non trovato। सूचना: inizio dell'esecuzione डेल जांच dell'assembly। सूचना: WinSxS में असेंबली गैर trovato। सूचना: सी में \ tcativo di esecuzione del probe del manifesto c: \ windows \ assembly \ GAC_32 \ Microsoft.VC90.DebugCRT \ 9.0.21022.8__1fc8b3b9a1e18e3b \ Microsoft.VC90.DebugCRT.DLL। सूचना: सी में \ tcativo di esecuzione del probe del manifesto c: \ windows \ system32 \ Microsoft.VC90.DebugCRT.DLL। सूचना: सी में \ tcativo di esecuzione del probe del manifesto c: \ windows \ system32 \ Microsoft.VC90.DebugCRT.MANIFEST। सूचना: सी में \ tcativo di esecuzione del probe del manifesto c: \ windows \ system32 \ Microsoft.VC90.DebugCRT \ Microsoft.VC90.DebugCRT.DLL। सूचना: सी में \ tcativo di esecuzione del probe del manifesto c: \ windows \ system32 \ Microsoft.VC90.DebugCRT \ Microsoft.VC90.DebugCRT.MANIFEST। सूचना: घोषणापत्र गैर trovato प्रति ला लिंगुआ तटस्थ। सूचना: ठीक dell'esecuzione डेल जांच dell'assembly। INFORMAZIONI: impossibile risolvere il riferimento Microsoft.VC90.DebugCRT, प्रोसेसर आर्किटेक्चर = "x86", publicKeyToken = "1fc8b3b9a1e18e3b", टाइप = "win32", संस्करण = "9.0.21022.8"। त्रुटि: जेनरेटियन डेल प्रतियोगिता डी attivazione गैर riuscita। ठीक generazione प्रतियोगिता डी attivazione।

यहां डीबग आउटपुट है।

'हैलो शनिवार Night.exe': लोडेड 'C: \ Users \ जेक \ दस्तावेज़ \ विजुअल स्टूडियो 2010 \ परियोजनाओं \ हैलो शनिवार की रात \ डीबग \ हैलो शनिवार Night.exe', लोड चिह्न। 'हैलो शनिवार नाइट.एक्सई': लोड किया गया 'सी: \ विंडोज \ System32 \ ntdll.dll', प्रतीकों को लोड किया गया (स्रोत जानकारी छीन ली गई)। 'हैलो शनिवार नाइट.एक्सई': लोड किया गया 'सी: \ विंडोज \ System32 \ kernel32.dll', प्रतीकों को लोड किया गया (स्रोत जानकारी छीन ली गई)। 'हैलो शनिवार नाइट.एक्सई': लोड किया गया 'सी: \ विंडोज \ System32 \ cxcore210d।डीएलएल ', पीडीबी फ़ाइल नहीं ढूंढ या खोल सकता है डीबगर :: प्रक्रिया लोड के दौरान एक अनचाहे गैर-निरंतर अपवाद फेंक दिया गया था थ्रेड' Win32 थ्रेड '(0x1140) कोड -1072365566 (0xc0150002) के साथ निकला है। धागा 'Win32 थ्रेड' (0xf1c) कोड -1072365566 (0xc0150002) से बाहर निकला है। कार्यक्रम '[3688] हैलो शनिवार नाइट.एक्सई: मूल' कोड -1072365566 (0xc0150002) से बाहर निकला है।

उत्तर

5

मुझे लगता है कि आप गलत समझ सकते हैं कि सीएमके सबसे ज्यादा लाभ उठाता है। यह लाइब्रेरी लेखकों है, और अच्छे कारण के लिए। जब आप क्रॉस-प्लेटफ़ॉर्म लाइब्रेरी को संलेखित कर रहे हैं, तो आपको विभिन्न ऑपरेटिंग सिस्टम और कंपाइलर्स के लिए बिल्ड वातावरण प्रदान करना होगा। काफी कुछ संयोजन हैं। बड़ी लाइब्रेरी परियोजनाओं के लिए इन मेक-फाइलों और परियोजनाओं/समाधानों को बनाए रखना एक श्रम-केंद्रित कार्य है, खासकर यदि कोई नई फ़ाइल जोड़ दी गई है या हटा दी गई है।

सीएमके दर्द से बाहर निकलता है। यह कंपाइलर-स्वतंत्र-तरीके में एक बिल्ड उत्पन्न करता है, जिससे स्रोत कोड के लेखकों को एकल निर्माण वातावरण बनाए रखने की अनुमति मिलती है। अब परियोजना को प्लेटफॉर्म और कंपाइलर्स में आसानी से वितरित किया जा सकता है।

तो हाँ, यह लाइब्रेरी का उपयोग कर डेवलपर के लिए एक अतिरिक्त कदम है, लेकिन आपको इसे केवल एक बार रिलीज करना होगा, क्या वास्तव में यह एक मुद्दा है?

+1

+1 - सीएमके लाभ डेवलपर्स को भी लाभान्वित करता है, आकस्मिक रूप से (क्या होगा यदि वे आपके विशिष्ट प्लेटफ़ॉर्म के लिए बाइनरी बनाने के लिए परेशान नहीं हैं?)। यह एक दर्द की तरह लगता है (मैंने ओपी के समान तरीके से अतीत में इसके बारे में शिकायत की है), जब तक उस बिंदु तक पोर्टेबिलिटी आपके लिए एक बड़ा विचार नहीं बन जाती। फिर आप अचानक महसूस करते हैं कि यह उपयोगी क्यों है :) –

+0

@sgolodetz, अच्छा बिंदु। मैंने थोड़ा सा पाठ संशोधित किया है। –

0

सब कुछ के अलावा म्यू-रस ने कहा, यदि आप वीएस के लिए एक आसान कंप्यूटर दृष्टि समाधान चाहते हैं तो मैं अत्यधिक EmguCV की सिफारिश करता हूं। यह सी # रैपर में ओपनसीवी है। नहीं, फ़ाइल बनाएं और संभालने के लिए समग्र रूप से अधिक आसान है, खासकर यदि आप नौसिखिया हैं।