क्या आप पहले एक के बाद C या C ++ त्रुटियों को पढ़ते हैं?


19

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


मुझे लगता है कि मैं केवल पहले वाले को पढ़ता हूं, लेकिन मैं हजार मिलियन स्रोत फ़ाइल समाधानों के साथ काम नहीं करता, ताकि मदद मिले।
कोडर

जवाबों:


19

कभी-कभी त्रुटियां असंबंधित होती हैं। मैं यह आसान त्रुटियों की एक सूची को देखो और संबंधित त्रुटियों की एक श्रृंखला के मूल कारण को ठीक है, तो अगले ठीक करने के लिए लगता है संयुक्त राष्ट्र से संबंधित त्रुटि। यदि परियोजना बड़ी है और निर्माण में थोड़ा समय लगता है, तो मुझे इस तरह से काम करना ठीक लगता है कि पहली त्रुटि को ठीक करने से कम निराशा होती है, फिर से दोहराएं ...


3
+1: आप पर ध्यान दें, यदि प्रोजेक्ट बड़ा है और निर्माण में कुछ समय लगता है, तो यह समझदारी है कि कंपाइल के बीच बहुत अधिक बदलाव न करें ताकि आप किसी भी समस्या का हल पा सकें जो आपने अपेक्षाकृत आसानी से पेश की।
डोनाल्ड फैलो

मैं इस बात से सहमत हूं कि यदि आपका संकलन समय बहुत लंबा है, तो अन्य असंबंधित त्रुटियों को देखने के लिए उपयोगी हो सकता है, लेकिन मैं निर्भरता की समस्याओं को ठीक करना पसंद करूंगा, जो उन लंबी वृद्धि का कारण बनती हैं ...
alexk7

8

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


4

हां, मैं ऐसा ही करता हूं, जब तक कि मैं कंपाइलर का उपयोग कर रहा हूं कि मुझे रिफ्लेक्टर की मदद करने की स्थिति में मुझे त्रुटियों की पूरी सूची पसंद है :)


कई आधुनिक आईडीई में एक बटन के क्लिक पर रिफैक्टरिंग उपकरण उपलब्ध होते हैं, इसलिए यदि आपके पास इस तरह के उपकरणों की पहुंच और क्षमताएं हैं, तो रिफलेक्टर-बाय-कंपाइलर-त्रुटि आवश्यक नहीं है। जब तक आप इसे पसंद नहीं करते ...
FrustratedWithFormsDesigner

1
हां, लेकिन मेरे प्राथमिक काम IDE VS में C ++ के लिए कोई नहीं है :( जब कोई उपकरण नहीं है, तो मुझे एक रास्ता मिल जाएगा!
स्टीफन बेली

1
पूरे टमाटर से विजुअल असिस्टेंट एक्स, सी ++ के लिए वीएस से रिफैक्टिंग जोड़ता है।
स्टोनमेटल

4

यदि लाइन नंबरों में गैप है, तो कंपाइलर ने शायद रिकवरी की और फिर दूसरी त्रुटि पाई।

आमतौर पर केवल प्रत्येक गुच्छा में एक त्रुटि को ठीक करने का प्रयास करते हैं।


1

बेहतर संकलक बेहतर परिणाम देगा और आपको पहले एक के बाद अधिक उपयोगी त्रुटियां देगा, अक्सर त्रुटियों के कुछ प्रकार के स्वत: सुधार के माध्यम से ताकि कम से कम अच्छे कोड की जांच की जा सके। लेकिन फिर, मुझे ग्रहण में जावा में काम करने के लिए उपयोग किया जाता है, जहां सिंटैक्स टाइपोस का तुरंत पता लगाया जाता है और आसानी से ठीक किया जाता है, और अन्य संकलक त्रुटियों को संकलक से पुनर्प्राप्त करने के लिए अधिक विविध और आसान होते हैं। मैं केवल यह मान सकता हूं कि यह Microsoft के IDEs और C ++ या C # में दूसरों के काम करते समय समान है।


0

हां - या कम से कम मैं उन्हें स्किम करता हूं। यह पता लगाना बहुत आसान है कि क्या त्रुटियां संबंधित हैं (आमतौर पर लाइन नंबर पर एक नज़र रखना पर्याप्त है) और मुझे उन सभी को एक पास में ठीक करना पसंद है और फिर पुन: जमा करना है।


0

मैं ऐसा करता हूं (पहले एक के अतीत की त्रुटियों को पढ़ने के लिए) यदि केवल 1 सीपी संकलन बहुत लंबा है। या उपलब्ध नहीं है। फिर मैं यह सुनिश्चित करना पसंद करता हूं कि मैंने कंपाइलर त्रुटियों में पहचानी गई हर चीज को पहले त्रुटि के अनुसार असंबंधित कर दिया।

जब आपकी cpp फाइल को अकेले संकलित किया जा सकता है और यह एक सेकंड से भी कम समय में होता है (या आपके पास एक "intellisense" है जो संकलन शुरू होने से पहले त्रुटियों को इंगित करता है) तो आपको ज्यादातर ऐसा करने की आवश्यकता नहीं है।

मैं वर्तमान में एक ऐसी परियोजना पर काम कर रहा हूँ जहाँ मैं अकेले एक cpp को संकलित नहीं कर सकता (और बिल्ड सिस्टम पर मेरा हाथ नहीं है इसलिए मैं उस O__o को नहीं बदल सकता) और कुछ cpp फ़ाइलों को संकलन करने में दस मिनट से अधिक समय लग सकता है ( इसे कम करने के बहुत प्रयास के बाद भी, हमने इसे केवल मूल संकलन समय के 50% तक घटा दिया है ...)।

इस तरह के बहुत लंबे संकलन की स्थापना में, आप "बिल्ड" को हिट करने से पहले बहुत कुछ सोचते हैं ... और यहां तक ​​कि बहुत बाद में सोचते हैं, हो सकता है कि कंपाइलर से पहले बग ढूंढ लें क्योंकि आप निश्चित रूप से तेजी से उन्हें मानसिक रूप से प्राप्त कर रहे हैं। ।


-1

जैसा कि आप करते हैं यह करना काफी सामान्य है। मैं आमतौर पर इंटर्न या नौसिखिए प्रोग्रामर को बताता हूं कि पहले एक को छोड़कर लगभग सभी त्रुटियों को अनदेखा करने के लिए त्रुटियों की संख्या से अभिभूत। यह सबसे अधिक संभावना है कि एक वास्तविक त्रुटि है जिसे ठीक करने की आवश्यकता है, और पिछले एक की वजह से एक भ्रामक प्रेत त्रुटि नहीं है। कुछ (सबसे?) संकलक के पास इस कारण से पहली त्रुटि के बाद संकलन बंद करने का विकल्प होता है। बिल्ड सिस्टम को आमतौर पर पहली फ़ाइल के बाद बंद करने के लिए कॉन्फ़िगर किया जा सकता है जिसमें त्रुटियां भी हैं।

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.