Hiện tại GCC không có cách nào để ngăn chặn cảnh báo này. Và flycheck không có cách nào để bỏ qua lỗi mà không chạm vào bên trong của nó.
Đây là một bản hack hoạt động cho 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))
Để đầy đủ, câu trả lời của @ grepcake cho tiếng kêu:
; ignore clang "#pragma once" warning
(with-eval-after-load "flycheck"
(setq flycheck-clang-warnings `(,@flycheck-clang-warnings
"no-pragma-once-outside-header")))