वर्तमान में जीसीसी के पास इस चेतावनी को दबाने का कोई तरीका नहीं है। और फ्लाइचेक के पास अपने इंटर्न को छूने के बिना त्रुटियों को अनदेखा करने का कोई तरीका नहीं है।
यहाँ एक हैक है जो gcc के लिए काम करता है:
; 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))
पूर्णता के लिए, क्लैग के लिए @ grepcake का उत्तर :
; ignore clang "#pragma once" warning
(with-eval-after-load "flycheck"
(setq flycheck-clang-warnings `(,@flycheck-clang-warnings
"no-pragma-once-outside-header")))