क्या 5 त्रुटियों के पाए जाने के बाद जीएनयू सी ++ संकलक को निर्देश देना संभव है? प्रलेखन में यह नहीं मिल सकता है।
जवाबों:
कमांड-लाइन विकल्प संकलक को एन त्रुटियों के बाद छोड़ने का निर्देश देता है । यह विकल्प जीसीसी 4.6 और बाद में मौजूद है।-fmax-errors=N
कमांड-लाइन विकल्प -Wfatal-errorsसंकलक को एक त्रुटि के बाद छोड़ देने का निर्देश देता है । यह विकल्प जीसीसी 4.0 और बाद में मौजूद है।
जब तक आप भी निर्दिष्ट नहीं करते हैं, तब तक दोनों मामलों में, चेतावनी सीमा की ओर नहीं जाती है -Werror।
-Wuninitializedपर गलत सकारात्मकताएं हैं: यह मृत-लेकिन-नहीं-बल्कि-मृत स्टोर निर्देशों पर I-cache बर्बाद करता है; और अगर ऐसा कुछ परिवर्तन होता है जो चेतावनी को सकारात्मक बनाता है, तो हम चाहते हैं कि इसे पकड़ने के लिए वैलेग्राइंड हो।
-fmax-errorsध्वज का सम्मान नहीं करता है (जैसे कि हाथ-कोई-एली-जीबीसी 5.4.1)। मैं विकल्प का उपयोग कर रहा था -finstrument-functionsऔर अपरिभाषित __cyg_profile_func_enterफ़ंक्शन के कारण मुझे सैकड़ों त्रुटियां मिलीं ।
आप gcc विकल्प का उपयोग कर सकते हैं:
-fmax-errors=5
इस काम के लिए।
मैं ऐसे विकल्प का भी स्वागत करूंगा। अभी के लिए, मैं पहले पाँच त्रुटियों को प्राप्त करने के लिए निम्नलिखित समाधान का उपयोग कर रहा हूँ:
<make> 2>&1|grep error|head -5
मुझे पूछना होगा कि आप ऐसा क्यों करना चाहेंगे। कभी-कभी कोड में मौजूद त्रुटि पहले या पहले पांच त्रुटियों में भी नहीं पाई जाती है। कभी-कभी यह उससे परे होता है और सूची को नीचे स्क्रॉल करने के बाद ही पहचानने योग्य होता है। एक बेहतर तरीका यह हो सकता है कि आप अपने कोड को तोड़कर छोटे पुस्तकालयों में रखें यदि आप संकलन के समय परेशान होते हैं। या यदि आप एक कमांड लाइन के स्क्रीन को स्क्रॉल करने वाली चीजों से संबंधित हैं, तो संदेशों में किसी फ़ाइल को पाइप करने के लिए '>>' ऑपरेटर का उपयोग करते हैं।
-Werror। मेरा मानना है कि चेतावनियों को बिल्कुल वैसा ही माना जाना चाहिए जैसे कि वे त्रुटियां थीं, क्योंकि ज्यादातर चेतावनियां छोटी गाड़ी कोड का संकेत हैं।