2010-10-18 21 views
6

के लिए चेतावनी स्तर बदलना मैं आम तौर पर विजुअल स्टूडियो में चेतावनी स्तर 4 के खिलाफ संकलन करना चाहता हूं और सभी चेतावनियों को त्रुटियों के रूप में मानना ​​चाहता हूं। समस्या यह है कि, Ogre3D को चेतावनी स्तर 3 के साथ संकलित नहीं किया गया है (न तो एफबीएक्स एसडीके या ओआईएस है, जिसका मैं भी उपयोग कर रहा हूं), और यह एक समस्या है क्योंकि अब मेरे पास Ogre3D पुस्तकालयों से चेतावनियों का एक टन है जिसे अब त्रुटियों के रूप में माना जाता है। अब तक मैं स्तर 3 पर संकलित कर रहा हूं, लेकिन यह मुझे बहुत असहज बनाता है। क्या विशिष्ट तृतीय पक्ष पुस्तकालयों के लिए चेतावनियों को अक्षम करने का कोई तरीका है जिस पर मेरा कोई नियंत्रण नहीं है?तृतीय पक्ष लिब्स

उत्तर

7

आप वास्तव में नहीं कह रहे हैं आप कैसे संकलन कर रहे हैं, लेकिन यहाँ कुछ विकल्प हैं:

1 - दृश्य स्टूडियो के अंदर, आप अलग-अलग स्रोत फ़ाइलों के लिए चेतावनी स्तर सेट कर सकते हैं प्रत्येक स्रोत फ़ाइल

2 के लिए गुण के माध्यम से - तुम भी चेतावनी स्तर गतिशील का उपयोग कर एक फ़ाइल के भीतर बदल सकते हैं

#pragma warning(push, 3) 
// Some code, perhaps #includes 
#pragma warning(pop) 

जो दो प्रागमाओं के बीच चेतावनी स्तर को 3 तक सेट करता है।

+0

प्वाइंट नंबर 1 वही है जो मैं ढूंढ रहा था, धन्यवाद! – Samaursa

3

यह हो सकता है कि यदि आप सबसे प्रसिद्ध एमएसवीसी सिललीवार्निंग को अक्षम करते हैं, तो समस्या कम से कम व्यवहार्य हो जाएगी।

मेरा sillywarnings दमन हेडर my blog पर उपलब्ध है; एमएसवीसी के साथ चेतावनी स्तर 4 पर <windows.h> का उपयोग करके कोड संकलित करने के लिए पर्याप्त है, बिना किसी चेतावनी के।

इसके अलावा, आप "कंपाइलर फ़ायरवॉल" को नियोजित करने के चरम उपाय पर जा सकते हैं, जिसका मतलब है कि किसी तृतीय पक्ष लाइब्रेरी के सभी प्रत्यक्ष उपयोग को कार्यान्वयन फ़ाइल या ऐसी फ़ाइलों के सेट में डालना है। फिर आप उन फ़ाइलों को कम चेतावनी स्तर पर संकलित कर सकते हैं। लेकिन मुझे नहीं लगता कि यह इसके लायक है। ।

चीयर्स & hth,

+0

दमन हेडर फाइल बहुत बहुत उपयोगी है, धन्यवाद है! – Samaursa

+1

मुझे दर्द होता है कि आप दावा करते हैं कि इनमें से कई मूर्ख हैं। – bobpaul

+0

@bobpaul: जहां तक ​​मैं आपके विशेषज्ञता का क्षेत्र देख सकता हूं वह पाइथन है, सी ++ नहीं। –

2

आप अपनी पार्टी में तीसरे पक्ष। एच फाइलों को लपेट सकते हैं और वहां स्थानीय रूप से अपमानजनक चेतावनियों को अक्षम कर सकते हैं क्योंकि आप सभी चेतावनियों को अक्षम नहीं करना चाहते हैं, लेकिन केवल विशिष्ट हैं।

// include_file_wrapper.h 

#pragma GCC diagnostic push 
#pragma GCC diagnostic ignored "-Wuninitialized" 

#include "file.h" 

#pragma GCC diagnostic pop 

जीसीसी के लिए यहां यह कैसे किया जा सकता है

http://gcc.gnu.org/onlinedocs/gcc/Pragmas.html

http://gcc.gnu.org/onlinedocs/gcc/Diagnostic-Pragmas.html#Diagnostic-Pragmas

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