2009-06-04 11 views
5

के लिए जीसीसी चेतावनी अक्षम मैं उत्सुक हूँ अगर वहाँ के बारे में के लिए भाषा का संकलित किया जा रहा एक पैरामीटर मान्य नहीं किया जा रहा है जीसीसी चेतावनी निष्क्रिय करने के लिए एक विकल्प है।असंगत विकल्पों

पूर्व:

cc1: warning: command line option "-Wno-deprecated" is valid for C++/Java/ObjC++ but not for C 

हमारे निर्माण सिस्टम चेतावनी हम विश्व स्तर पर निर्माण के पार पर फैसला किया है गुजरता है। हमारे पास सी/सी ++ कोड दोनों हैं और वास्तविक चेतावनियां खोजने का प्रयास करते समय चेतावनियां वास्तविक परेशान होती हैं।

कोई सुझाव?

+0

IMHO यह मेक लेवल पर सबसे अच्छा हल किया गया है। आप जानते हैं कि कौन सी स्रोत फाइलें सी हैं और सी ++ हैं, है ना? –

उत्तर

2

मुझे ऐसा लगता है कि यदि इस तरह के एक विकल्प थे, वहाँ उस विकल्प के बारे में चेतावनी बंद करने के लिए एक और विकल्प हो करने के लिए होगा, और इतने पर असीम। तो मुझे संदेह है कि वहां नहीं है।

एक ही विकल्प के लिए पूरी तरह से अलग भाषाओं के बनाता है के बाद वैसे भी थोड़ा अजीब लगता है - मैं विभिन्न विकल्पों makefile मैक्रो के रूप में परिभाषित और विभिन्न लक्ष्यों के लिए उचित रूप से उपयोग करना होगा।

+0

मुझे एहसास है कि यह बाहरी व्यक्ति के लिए अजीब लग रहा है। मैं बिल्ड सिस्टम का प्रभारी नहीं हूं, मैं बस इसे साफ करने की कोशिश कर रहा हूं। मेरे पास वास्तव में दोनों के अलग होने की शक्ति नहीं है। –

0

अलास जीसीसी में व्यक्तिगत चेतावनियां चालू या बंद करने की क्षमता नहीं है। कुछ चेतावनियां विशेषीकृत होती हैं, और चेतावनी स्तर निर्धारित किए जा सकते हैं, लेकिन उन चेतावनियों को बंद करने का कोई तरीका नहीं है जिनकी आपको परवाह नहीं है।

मेरा मतलब है जो कभी फ़ाइल के अंत में खाली पंक्ति याद आ रही के बारे में परवाह है? मुझे पता है कि इसे बंद करने के लिए एक पैच है, लेकिन स्रोत से मेरे अनुपालन का निर्माण थोड़ा अधिक है।

अपने निर्माण प्रणाली के लिए आप अलग अलग भाषाओं के लिए चेतावनी की अलग सेट को परिभाषित कर सकते हैं। क्या होगा यदि आपको कुछ अन्य कंपाइलर का उपयोग करने की आवश्यकता है, जीसीसी नहीं?

+0

हमारी बिल्ड सिस्टम वास्तव में एकाधिक कंपाइलर्स का समर्थन करता है, 3 वास्तव में। 6 विभिन्न वास्तुकलाओं में। पुराने सी कोड संकलित जीसीसी एज एज केस है, और -> मैंने अपने प्रश्न क्यों पूछा .. –

3

जीसीसी -Wxxxx में विशिष्ट चेतावनी सक्षम करने के लिए और उन्हें -Wno-xxxx साथ निष्क्रिय करने के लिए।

GCC Warning Options से:

आप विकल्पों शुरुआत -W', for example -Wimplicit to request warnings on implicit declarations. Each of these specific warning options also has a negative form beginning -Wno- 'चेतावनियों को बंद करने के लिए के साथ कई विशिष्ट चेतावनी अनुरोध कर सकते हैं; उदाहरण के लिए, -नो-निहित। यह मैनुअल केवल दो रूपों में से एक सूचीबद्ध करता है, जो भी डिफ़ॉल्ट नहीं है।

हालांकि @Neil विभिन्न भाषाओं के विकल्पों को अलग करने के बारे में सही है। यदि आप उपयोग करते हैं तो आप उदाहरण दे सकते हैं सभी सी विकल्पों को सीएफएलएजीजीएस और सीसीएफएलजीएस में सभी सी ++ विकल्पों में डाल दें।

+0

चेतावनी विकल्प चेतावनी उत्पन्न कर रहा है, मुझे नहीं लगता- इस मामले में कोई भी लागू नहीं है। –

0

यदि आपका सी फ़ाइलें संकलन के रूप में सी ++ आप के लिए एक विकल्प, -x c++ है।

+0

जो एक बहुत बुरा विचार है, वे लिंकिंग के लिए libstdC+++ लाएंगे जो * विशाल * – ismail

2

यदि आप CFLAGS चर सेट करते हैं तो यह केवल सी फाइलों को प्रभावित करेगा, यदि आप CXXFLAGS चर सेट करते हैं तो यह केवल C++ फ़ाइलों को प्रभावित करेगा, ताकि आप आसानी से तर्क को अलग कर सकें।

+0

है, यह उसके मेकफ़ाइल –

+0

पर निर्भर करता है। – ismail

संबंधित मुद्दे