यह त्रुटि तब होती है क्योंकि आप Qt के एक संस्करण पर संकलित एक प्रोजेक्ट का उपयोग कर रहे हैं। इसका मुख्य कारण यह है कि क्यूटी एमओसी उपकरण का उपयोग करता है जो सिग्नल स्लॉट हैंडलिंग और अन्य सामान के लिए गोंद कोड बनाता है।
Moc Q_OBJECT, संकेत :, स्लॉट :, आदि
इस कोड को पूरी तरह से क्यूटी संस्करण से जुड़ा हुआ है की तरह परिभाषाओं कि इस कोड बनाने के लिए इस्तेमाल किया गया था खोजने के लिए हेडर फाइल को पार्स करके करता है। कुछ मामलों में, यह कोड क्यूटी लाइब्रेरी के उसी संस्करण के लिए भी पूरी तरह से असंगत है जिसे विकल्पों के एक अलग सेट के साथ कॉन्फ़िगर किया गया था।
इस मामले में, यहां तक कि .pro में कुछ परिवर्तन, जैसे के लिए सच है का उपयोग कर कॉन्फ़िग + = no_keywords का कारण बनता है MOC क्यूटी इस तरह बढ़ावा के रूप में अन्य पुस्तकालयों जो क्यूटी की तरह समान कीवर्ड का उपयोग संकेत स्लॉट तंत्र प्रदान के साथ काम करने के लिए अनुमति विभिन्न गोंद कोड उत्पन्न करने के लिए ।
तो, संक्षेप में, जब भी आप एक अलग क्यूटी पुस्तकालय के खिलाफ क्यूटी परियोजना संकलन करने की जरूरत है, तो आप निम्न कार्य सुनिश्चित करें: 1. रन: distclean 2. रन बनाने: qmake 3. रन:
बनाने
यह आपको हमेशा एक स्वच्छ निर्माण पेड़ देगा।
स्रोत
2011-05-18 10:26:19
क्या आपने पहले जेनरेट की गई फ़ाइलों को हटाने के लिए "साफ करें" करने की कोशिश की है और उसके बाद "मेक" फिर से चलाना है? – Mat
क्या आप वाकई क्यूटी के पुराने संस्करण से शामिल किसी भी तरह से उपयोग नहीं कर रहे हैं? – Bart
एक साफ चेकआउट के साथ प्रयास करें/सभी moc _ /। Moc फ़ाइलों को हटाएं, qmake 4.7.3 पुन: चालू करें और करें। –