मुझे एक तृतीय-पक्ष लाइब्रेरी मिली है जो चेतावनी का एक टन उत्पन्न करती है, यहां तक कि/W3 के तहत भी। क्या मेरे लिए कंपाइलर बताने का कोई तरीका है, "इस निर्देशिका से शामिल किसी भी फाइल के लिए C4244 अक्षम करें, या इसकी उपनिर्देशिका"? बेशक, मैं अपने कोडबेस में चेतावनी को अक्षम नहीं करना चाहता हूं, न ही मैं इसे हर संभव ट्रैक को ट्रैक करना चाहता हूं और #pragma warning(...
क्या आप किसी विशिष्ट स्थान से शामिल किसी भी शीर्षलेख के लिए (विशिष्ट) कंपाइलर चेतावनियां बंद कर सकते हैं?
उत्तर
मैं यहाँ अपने खुद के सवाल का जवाब देने से नफरत को दबाने के लिए संकलक बताने के लिए है, लेकिन मुझे डर है कि इस मामले में 'सही' जवाब है कर रहा हूँ: यह है संभव नहीं।
हां। मैंने पूर्व-प्रोसेसर का दुरुपयोग करने की भी कोशिश की है जिसमें एक असफल मैक्रो उत्पन्न किया गया है जो चेतावनियों को अक्षम करता है लेकिन यह भी संभव नहीं लगता है। कुछ समझदार आउटपुट होने का एकमात्र तरीका मुझे लगता है कि संकलक चेतावनी आउटपुट को grep करना है, लेकिन अभी के लिए मैं बस सभी चेतावनियों के साथ रह रहा हूं। –
विजुअल स्टूडियो 2015 (कम से कम) में एक प्रोजेक्ट 'गुण/सभी विकल्प/विशिष्ट चेतावनियां अक्षम करें' सेट कर सकते हैं जिन्हें आप सेट कर सकते हैं। इसके लिए सीएलआई '/ wd4244' है। अन्य कंपाइलर्स में यह '/ nowarn: 4244' हो सकता है। –
मुझे यकीन नहीं है कि आप का मतलब है कि आप नहीं चाहते हैं #pragma
निर्देशों के साथ अपने शामिल बयानों को लपेटने के लिए या सही निर्देश को ट्रैक करने में समय बिताना नहीं चाहते थे। यदि इसका उत्तरार्द्ध है, तो मैंने पहले किया है:
#ifdef _MSC_VER
#pragma warning(disable : 4244)
#endif
#include "MyHeader.h"
#ifdef _MSC_VER
#pragma warning(default : 4244) /* Reset to default state */
#endif
क्षमा करें, यह पूर्व था। मुझे पता है कि पहले से ही #pragma के माध्यम से चेतावनियों को कैसे अक्षम किया जाए। – moswald
यह काम करना चाहिए। संकलक चेतावनी प्रज्ञा को याद करता है जो कि जब यह घोषणा संकलित करता था तब प्रभावी था। –
@ हंस: यह MyHeader.h द्वारा उत्पन्न चेतावनियों को बंद कर सकता है, लेकिन यह मेरे प्रश्न का उत्तर नहीं देता है। मैं कई दर्जन पुस्तकालयों के लिए कुछ सौ फाइलों को खोजना नहीं चाहता हूं, और फिर उन्हें #pragmas के साथ लपेटें। – moswald
आप अपने शामिल पथ से तृतीय पक्ष प्रोजेक्ट को हटाने का प्रयास कर सकते हैं। फिर एक उप-डीआईआर बनाएं जिसमें एक ही डीआईआर संरचना और हेडर फाइलें तृतीय पक्ष प्रोजेक्ट के रूप में हों, ताकि सभी # शामिल अब आपके हेडर ढूंढ सकें। फिर प्रत्येक नकली शीर्षलेख xxxx.h में आप प्रज्ञा सेट करते हैं तो वास्तविक xxxx.h शीर्षलेख शामिल करें, फिर प्रज्ञा को साफ़ करें। एक ही फ़ाइल सहित पुनरावर्ती से बचने के लिए आपको # शामिल करने के लिए एक अतिरिक्त डीआईआर जोड़ना होगा।
व्यक्तिगत रूप से, मैं बस अपनी परियोजना से गुजरता हूं और प्रगति जोड़ता हूं।
आप रख सकते हैं झंडे जैसे VS Project Settings > Command-line Options
में /wd4600
विशिष्ट Complier Warnings
यह उस हिस्से को याद करता है जिसके बारे में वह कहता है, "मैं अपने कोडबेस में चेतावनी को अक्षम नहीं करना चाहता हूं।" –
प्रयास करें:
//in wrapper_3rdParty.h
#pragma once
#pragma warning(push)
#pragma warning(disable : 4244)
#include "3rdParty.h"
#pragma warning(pop)
अपने कोड में
फिर, बस #include "wrapper_3rdParty.h"
बजाय।
जो चेतावनी पर default
व्यवहार के साथ समस्याओं को संभालता है, और htat पैकेज के आपके उपयोग के सभी उदाहरणों में चेतावनी दबाने वाली है।
एक ही स्थान पर आपकी सभी टिप्पणियों का जवाब देने के लिए: लाइब्रेरी बड़ी थी, और मुझे इनमें से दर्जनों को लिखना होगा। मैं एक शॉर्टकट के बारे में पूछ रहा था। – moswald
- 1. किसी विशिष्ट फेसबुक स्थान (पृष्ठ)
- 2. jQuery किसी विशिष्ट तत्व के स्थान
- 3. विशिष्ट शीर्षलेख
- 4. किसी विशिष्ट संस्करण
- 5. विम: क्या आप किसी अन्य पंक्ति से एक विशिष्ट लाइन नंबर हटा सकते हैं?
- 6. किसी विशिष्ट URL
- 7. अपाचे चींटी: किसी विशिष्ट कार्य के लिए आउटपुट बंद करें
- 8. किसी विशिष्ट फ़ाइल
- 9. विशिष्ट टैग के लिए जावाडोक चेतावनियां मारना
- 10. किसी विशिष्ट तत्व
- 11. किसी विशिष्ट उपयोगकर्ता के प्रिंटक्यूयू
- 12. किसी विशिष्ट आईपी
- 13. Maven में, एक प्रोफ़ाइल, मॉड्यूल ओवरराइड कर सकते हैं (के लिए किसी भी शामिल नहीं)
- 14. किसी विशिष्ट पोर्ट
- 15. किसी विशिष्ट संपत्ति मान वाले
- 16. क्या आप दृढ़ता से नामित संदर्भों के विशिष्ट संस्करणों को अनदेखा कर सकते हैं?
- 17. किसी भी तरह चर बदल सकते हैं?
- 18. किसी अन्य शीर्षलेख फ़ाइल में शीर्षलेख शामिल करें
- 19. क्या आप उद्देश्य-सी में कस्टम कंपाइलर चेतावनियां जोड़ सकते हैं?
- 20. कैसे विशिष्ट स्थान
- 21. किसी सूची से विशिष्ट ऑब्जेक्ट्स निकालें
- 22. आप किसी विशिष्ट प्रकार की फ़ाइलों के लिए निर्देशिका कैसे भिन्न करते हैं?
- 23. सबसेट पंक्तियों/किसी भी स्तंभ एक विशिष्ट मूल्य
- 24. कंपाइलर विशिष्ट मेमोरी प्रारंभिक
- 25. क्या आप किसी ईमेल से सीएसएस फ़ाइल से लिंक कर सकते हैं?
- 26. SQL Server 2008 R2 किसी विशिष्ट स्थान में कॉलम जोड़ें
- 27. पायथन एप्लीकेशन: क्या आप किसी भी तरह अपना कोड सुरक्षित कर सकते हैं?
- 28. विशिष्ट दिनचर्या पर प्रदर्शन मीट्रिक: किसी भी सर्वोत्तम प्रथाओं?
- 29. एक विशिष्ट स्थान पर
- 30. एक विशिष्ट नाम स्थान
अच्छा सवाल :) अगर मैं क्यूटी हेडर से चेतावनियां बंद कर सकता हूं तो मुझे खुशी होगी। –
@ विजिटर: मुझे यकीन है कि मुझे नहीं पता कि आप किस बारे में बात कर रहे हैं। ;) – moswald
मुझे यकीन नहीं है कि एक कंपाइलर ऐसा कर सकता है या नहीं। लेकिन व्यावहारिक रूप से, आप संकलन के बाद इन चेतावनियों को फ़िल्टर कर सकते हैं। – czchen