ফ্লাইচেকে নির্দিষ্ট সতর্কতাটি অক্ষম করুন (বিশেষত "মূল ফাইলের মধ্যে একবার # প্রগমা")


11

আমি সি ++ বিকাশের জন্য ফ্লাইচেক ব্যবহার করছি এবং নিম্নলিখিত সতর্কতাটি পেয়েছি:

#pragma once in main file

একটি প্রধান ফাইল অন্তর্ভুক্ত সমস্ত শিরোনামে। ওয়েবগুলি অনুসন্ধান করে, আমি অনুভূতিটি পেয়েছি যে ফ্লাইমেকের জন্য জিসিসি এবং ঝনঝন (উভয়ই একই সতর্কতা দেয়) কীভাবে এটির সাথে সম্পর্কযুক্ত।

আমি এই সতর্কতা থেকে মুক্তি পেতে চাই। আমি কি কিছু করতে পারি?


যদি আমরা প্রথমে এটি পুনরুত্পাদন করতে পারি তবে এই সতর্কতাটি কীভাবে দমন করা যায় তা নির্ধারণ করা আরও সহজ হবে । আপনি যেমন একটি সহজ ফাইল বা ফাইলগুলি সমস্যার চিত্র প্রদর্শন করতে পারেন, তবুও আপনি যত সহজ সরল হয়ে উঠতে পারেন?
বেন লিবিলিট

আমার আপনার মত একটি প্রশ্ন আছে, আমার একটি উত্তর আছে
প্রদানা আওমারস

উত্তর:


2

এই সতর্কতাটি অক্ষম করার জন্য কলংয়ের একটি বিকল্প রয়েছে। আমার কনফিগারটিতে নিম্নলিখিতগুলি যুক্ত করা আমার জন্য সমস্যাটি স্থির করে।

(with-eval-after-load "flycheck"
    (setq flycheck-clang-warnings `(,@flycheck-clang-warnings
                                    "no-pragma-once-outside-header")))

দুর্ভাগ্যক্রমে, আমি জানি না যে সিসিসি-র জন্য অনুরূপ বিকল্প বিদ্যমান কিনা।


0

বর্তমানে জিসিসির এই সতর্কতা দমনের কোনও উপায় নেই। এবং ফ্লাই চেকটির অভ্যন্তরগুলি স্পর্শ না করে ত্রুটি উপেক্ষা করার কোনও উপায় নেই।

এখানে একটি হ্যাক যা জিসিসির জন্য কাজ করে:

; ignore gcc "#pragma once" warning
(with-eval-after-load "flycheck"
  (eval-when-compile (require 'flycheck))  ; for flycheck-error struct
  (defun my-filter-pragma-once-in-main (orig-fun errors)
    (dolist (err errors)
      (-when-let (msg (flycheck-error-message err))
        (setf (flycheck-error-message err)
              (if (string-match-p "#pragma once in main file" msg) nil msg))))
    (funcall orig-fun errors))
  (advice-add 'flycheck-sanitize-errors :around #'my-filter-pragma-once-in-main))

সম্পূর্ণতার জন্য, ঝাঁকুনির জন্য @ গ্রেপককের উত্তর :

; ignore clang "#pragma once" warning
(with-eval-after-load "flycheck"
  (setq flycheck-clang-warnings `(,@flycheck-clang-warnings
                                  "no-pragma-once-outside-header")))
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.