[英]How do we disable specific warnings from C preprocessing
我為 C 預處理命令啟用了-Werror
以將警告視為錯誤。 基本上我only
將redefined
的警告視為錯誤。 所有其他警告不應被視為錯誤。
In file included from /home/test/version24/test.spec:35:0,
/test/release/base_version.spec:93:0: warning: "CD_MK_FILE" redefined
#define CD_MK_FILE 4
In file included from /home/test/version23/mss_litter.spec:19:0,
from
/test/release/base_version23.spec:0: note: this is the location of the previous definition
#define CD_MK_FILE 3
是否有任何標志僅將重新定義的警告視為錯誤。 謝謝!
對於gcc
/ g++
和clang
編譯器,嘗試:
# To disable -Werror just for warning -Wwhatever
-Wno-error=whatever
# To **enable** errors just for this one -Wwhatever warning
-Werror=whatever
對於 clang 編譯器,您將使用-Wno-error=macro-redefined
僅針對-Wmacro-redefined
警告禁用該錯誤,並且您將使用-Werror=macro-redefined
僅為該警告啟用錯誤.
請參閱此處: https://clang.llvm.org/docs/DiagnosticsReference.html#wmacro-redefined 。 感謝@user3386109問題下的評論!
請在此處查看所有可能的警告和錯誤的列表:
例如,來自上面的 gcc 鏈接:
-Werror=
將指定的警告變為錯誤。 附加警告的說明符; 例如
-Werror=switch
將-Wswitch
控制的警告轉換為錯誤。 此開關采用否定形式,用於否定特定警告的-Werror
; 例如-Wno-error=switch
使-Wswitch
警告不是錯誤,即使-Werror
生效。每個可控警告的警告消息包括控制警告的選項。 然后該選項可以與
-Werror=
和-Wno-error=
一起使用,如上所述。 (可以使用-fno-diagnostics-show-option
標志禁用警告消息中選項的打印。)請注意,指定
-Werror=foo
會自動暗示-Wfoo
。 但是,-Wno-error=foo
並不意味着任何東西。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.