使用 -errwarn 选项可以在出现指定的警告消息时使 C 编译器退出,并指示故障状态。
t 是一个以逗号分隔的列表,它包含以下项中的一项或多项:tag、no% tag、%all、%none。顺序很重要,例如如果出现除 tag 之外的任何警告,%all,no%tag 会使 cc 以致命状态退出。
由于编译器错误检查的改善和功能的增加,C 编译器生成的警告消息也会因发行版本而异。使用 -errwarn=%all 进行编译而不会产生错误的代码,在编译器下一个发行版本中编译时也可能出现错误。
只有来自 C 编译器前端在使用 -errtags 选项时会显示标记的警告消息可以使用 -errwarn 选项进行指定,从而使 C 编译器以失败状态退出。
下表详细列出了 -errwarn 值:
表 B–5 -errwarn 标志
标志 |
含义 |
---|---|
tag |
在此 tag 指定的消息作为警告消息发出时导致 cc 以致命状态退出。如果未出现 tag,则没有影响。 |
no%tag |
在 tag 指定的消息仅作为警告消息发出时防止 cc 以致命状态退出。如果未发出 tag 指定的消息,则不会产生任何影响。为了避免在发出警告消息时导致 cc 以致命状态退出,可使用该选项来还原以前用该选项和 tag 或 %all 指定的警告消息。 |
%all |
在发出任何警告消息时导致编译器以致命状态退出。%all 可以后跟 no%tag,以避免该行为的特定警告消息。 |
%none |
在发出任何警告消息时防止警告消息导致编译器以致命状态退出。 |
缺省值为 -errwarn=%none。如果单独指定 -errwarn,它与 -errwarn=%all 等效。