मैं किसी तृतीय-पक्ष लाइब्रेरी से एक फ़ाइल शामिल कर रहा हूं जो एक त्रुटि उत्पन्न करता है जिसे -fpermissive
के साथ चेतावनी में डाउनग्रेड किया जा सकता है। लेकिन क्योंकि मैं इन चेतावनियों के साथ अपने संकलन लॉग को "प्रदूषित" नहीं करना चाहता, इसलिए मैं इस संदेश को पूरी तरह से अक्षम करना चाहता हूं।जीसीसी में, fpermissive चेतावनी को म्यूट कैसे करें?
अब तक, -fpermissive
विकल्प को diagnostic pragma फ़ाइल के साथ सेट करते समय सेट करें; कुछ की तरह:
#pragma GCC diagnostic push
#pragma GCC diagnostic warning "-fpermissive"
#include <third-party-file.h>
#pragma GCC diagnostic pop
के बाद से जीसीसी आमतौर पर -f
झंडे के दोनों एक "सकारात्मक" और "नकारात्मक" संस्करण प्रदान करते हैं मैं "नहीं-अनुमोदक" सुविधा की अनदेखी के बारे में सोचा:
#pragma GCC diagnostic ignored "-fno-permissive"
#include <third-party-file.h>
लेकिन वहाँ -fpermissive
ध्वज का "ऋणात्मक" संस्करण प्रतीत नहीं होता है (मैं जीसीसी 4.6.3 का उपयोग कर रहा हूं, लेकिन संस्करण 4.7.0 does not have it) भी।
कोई भी मौका मैं इस व्यवहार की नकल कर सकता हूं? धन्यवाद!
'-fno-permissive' डिफ़ॉल्ट है। '-fpermissive' और ध्वज के" नकारात्मक "और" सकारात्मक "संस्करण कुछ भी नहीं हैं। उस ने कहा, आपको इसका उपयोग नहीं करना चाहिए। कोड ठीक करें! भले ही यह तुम्हारा नहीं है। – rubenvb
-fno-permissive डिफ़ॉल्ट नहीं है, क्योंकि विकल्प मौजूद नहीं है। यदि यह अस्तित्व में था तो व्यवहार डिफ़ॉल्ट होगा हालांकि डिफ़ॉल्ट होगा। मैं कोड को ठीक कर सकता हूं, लेकिन यह एक वर्कअराउंड की तरह लगता है ... वैसे भी, हेडर के पूरे सेट को ठीक करना वास्तव में एक विकल्प नहीं है। – piwi
यह वही है जो मेरा मतलब था। '-fpermissive' हैक/वर्कअराउंड यहाँ है। वैसे भी हम किस कोड के बारे में बात कर रहे हैं। शायद एक बेहतर विकल्प है। – rubenvb