दिलचस्प पोस्ट
त्रुटि 1066: सुअर, जेनेरिक समाधान में अन्य नाम के लिए हेरेटर को खोलने में असमर्थ Java.lang.ClassCastException का अर्थ: someClass कुछ क्लास के साथ असंगत है ओएस संस्करण / दोस्ताना नाम सी # में प्राप्त करें बहुभुज में सी # प्वाइंट जावा में स्काला एकल ऑब्जेक्ट का उपयोग कैसे कर सकता हूं? अजगर फ़ंक्शन वैश्विक चर? ग्रुप द्वारा गठबंधन / एक कॉलम को संरेखित करें एंड्रॉइड ऐपकाम-v7: 21.0.0 सामग्री बदलने के लिए चेकबॉक्स रंग नेस्टिंग <a> अंदर <button> फ़ायरफ़ॉक्स में काम नहीं करता है कोई एक्जीक्यूटेबल मेलिंग कमांड "dotnet-ef" नहीं मिला सरलतम Socket.io उदाहरण का एक उदाहरण क्या है? CSS में एकाधिक @ फ़ॉन्ट-चेहरे नियमों का उपयोग करें मुख्य प्रोटोटाइप घोषित करें कैसे दो jQuery एनिमेशन एक साथ चलाने के लिए? स्टेटलेस प्रोग्रामिंग के फायदे?

अनिर्धारित प्रतीकों "के लिए vtable …" और "प्रकार के लिए …" …

लगभग अंतिम चरण, लेकिन अभी भी कुछ अजीब त्रुटि …

bash-3.2$ make g++ -Wall -c -g Myworld.cc g++ -Wall -g solvePlanningProblem.o Position.o AStarNode.o PRM.o PRMNode.o World.o SingleCircleWorld.o Myworld.o RECTANGLE.o CIRCLE.o -o solvePlanningProblem Undefined symbols: "vtable for Obstacle", referenced from: Obstacle::Obstacle()in Myworld.o "typeinfo for Obstacle", referenced from: typeinfo for RECTANGLEin RECTANGLE.o typeinfo for CIRCLEin CIRCLE.o ld: symbol(s) not found collect2: ld returned 1 exit status make: *** [solvePlanningProblem] Error 1 

Vtable और typeinfo का क्या अर्थ है?

Solutions Collecting From Web of "अनिर्धारित प्रतीकों "के लिए vtable …" और "प्रकार के लिए …" …"

यदि अवरोध एक सार आधार वर्ग है, तो सुनिश्चित करें कि आप अपने सभी वर्चुअल विधियों "शुद्ध वर्चुअल" को घोषित करें:

 virtual void Method() = 0; 

= 0 कंपाइलर को बताता है कि इस पद्धति को एक व्युत्पन्न वर्ग के द्वारा ओवरराइड किया जाना चाहिए, और इसके स्वयं के कार्यान्वयन भी नहीं हो सकते।

यदि क्लास में कोई भी गैर-शुद्ध वर्चुअल फ़ंक्शन शामिल है, तो कंपाइलर मान लेगा कि उनके पास एक कार्यान्वयन है, और इसके आंतरिक संरचनाएं (vtable और typeinfo) एक ही वस्तु फ़ाइल में उन में से एक के रूप में उत्पन्न हो सकती हैं; अगर उन कार्यों को लागू नहीं किया जाता है, तो आंतरिक संरचनाएं गायब हो जाएंगी और आपको ये त्रुटियां मिलेंगी

कक्षा बाधा को एक आभासी नाशक की जरूरत है डिस्ट्रिक्ट परिभाषा को बदलें:

 virtual ~Obstacle(); 

किसी डिस्ट्रक्टर की परिभाषा में वर्चुअल फ़ंक्शंस वाले वर्ग के लिए वीटेल भी बनाता है। यह यह भी सुनिश्चित करता है कि आधार क्लास पॉइंटर के माध्यम से एक व्युत्पन्न क्लास इंस्टालेशन के एक डिलीट सही काम करता है।

( इस प्रश्न के उत्तर में मेरे उत्तर की प्रतिलिपि मुझे इस अजीब त्रुटि के साथ क्या करना चाहिए? जो एक डुप्लिकेट लगता है।)

क्या आपके पास Obstacle.cc है। Obstacle.cc फ़ाइल? यदि हां, तो आपको यह सुनिश्चित करने की आवश्यकता है कि यह Obstacle.o में बनाया गया हो। Obstacle.o , और जब आप अपने कार्यक्रम से लिंक करते हैं तो Obstacle.o को कमांड लाइन में जोड़ा जाता है।

इसके अलावा, सुनिश्चित करें कि आप सभी गैर-शुद्ध-आभासी विधियों को आप घोषित करते हैं। यदि आप एक शुद्ध वर्चुअल डिस्ट्रक्टर घोषित करते हैं, तो आपको उस को भी परिभाषित करना होगा।

vtable और typeinfo सी ++ कंपाइलर द्वारा उत्पन्न आंतरिक संरचनाएं हैं वीटेल का उपयोग करने योग्य कार्यों को बुलाए जाने के लिए किया जाता है और टाइप आईएनएफटीटीटीआई के लिए प्रयोग किया जाता है

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

एक और कारण यह है कि आप इस त्रुटि को प्राप्त कर सकते हैं, और बस इसे यहां दस्तावेज़ करना चाहते हैं मैं एक स्थैतिक पुस्तकालय के साथ लिंक कर रहा था जिसमें आरटीटीआई नहीं था। इसलिए मेरे लिए सी ++ ध्वज -fno-rtti तय की गई। यदि आपको आरटीटीआई की आवश्यकता नहीं है, तो आप इस ध्वज को भी इस्तेमाल कर सकते हैं। उम्मीद है की यह मदद करेगा।