2013-09-06 9 views
10

मैं एक तृतीय पक्ष लाइब्रेरी संकलित कर रहा हूं और लाइब्रेरी में मौजूद चेतावनियों को ठीक करने की परवाह नहीं करता, लेकिन मैं नहीं चाहता कि वे अंक क्यूटी निर्माता में अंक प्रदूषित करें।अक्षम करें -एक क्यूटी परियोजना में सभी संकलक चेतावनियां?

मैंने here सलाह का पालन करने का प्रयास किया है, लेकिन -Wno-enum-compare के साथ सक्षम होने के बाद -Wall को अक्षम करने के लिए कोई कंपाइलर ध्वज नहीं है।

this पढ़ने के बाद, मैं बहुत की तरह झंडा को हटाने की कोशिश की:

CFLAGS -= -Wall 

लेकिन है कि या तो काम नहीं किया। फिर भी

QMAKE_CXXFLAGS_WARN_OFF -= -Wall 

कुछ भी नहीं: तो मैं this advice की कोशिश की।

तो मैं उत्पन्न Makefile में देखा और यह पाया:

CFLAGS  = -pipe -g -fPIC -Wall -W -D_REENTRANT $(DEFINES) 
CXXFLAGS  = -pipe -g -fPIC -Wall -W -D_REENTRANT $(DEFINES) 

तो मैं उन दो चर से ध्वज को हटाने की कोशिश की:

CFLAGS -= -Wall 
CXXFLAGS -= -Wall 

फिर भी कुछ नहीं। आप इस कंपाइलर ध्वज को कैसे हटा सकते हैं ?!

उत्तर

21

सरल समाधान है:

CONFIG += warn_off 

टिप्पणी में peppe के लिए धन्यवाद।

वैकल्पिक समाधान

इस hint के बाद।

-Wall झंडा इन दो चर द्वारा Makefile में डाला जाता है:

QMAKE_CFLAGS_WARN_ON 
QMAKE_CXXFLAGS_WARN_ON 

तो -Wall दूर करने के लिए, आप उन चर के दोनों से निकालने के लिए की जरूरत है।

QMAKE_CFLAGS_WARN_ON -= -Wall 
QMAKE_CXXFLAGS_WARN_ON -= -Wall 

associateddocumentation, स्पष्ट रूप से नहीं बल्कि कमी है।

+11

गैर-हैकिश तरीका शायद 'CONFIG + = warn_off' है। डिबगिंग के एक सामान्य तरीके के रूप में "यह चर/विकल्प/कहां से आ रहा है?", आप 'qmake -d', 'qmake -d -d', आदि चला सकते हैं; यह आपको कई उपयोगी संकेत देगा। – peppe

+0

@peppe बहुत बढ़िया - धन्यवाद। मैं इस से पूरी तरह से अनजान था! –

8

"peppe" भी टिप्पणी में बताया गया है, Qt'ish तरीका है यह नीचे प्रलेखन के अनुसार: CONFIG += warn_off/on

warn_on: संकलक चाहिए उत्पादन यथासंभव अधिक से अधिक चेतावनी। चेतावनी_ऑफ निर्दिष्ट होने पर यह अनदेखा किया जाता है।

warn_off: कंपाइलर को यथासंभव कम से कम चेतावनियों को आउटपुट करना चाहिए।

CONFIG दस्तावेज़ here में पाया जा सकता है।

QMAKE_CXXFLAGS_WARN_OFF/ON चर को स्पष्ट रूप से सेट करने की आवश्यकता नहीं है क्योंकि उन्हें qmake द्वारा नियंत्रित किया जाता है।

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