编译器错误消息自定义

Compiler Error Message Customization

我正在尝试从我的 C 编译器中获取与错误消息一起打印的错误编号或错误 ID。我目前正在使用 GCC,但如果使用 Clang 会更容易,那也可以。

这是我收到的错误消息示例:

error: syntax error before '}' token

这就是我想要的样子:

error(ERRID): syntax error before '}' token -- 

ERRID 是该错误的数字或唯一字符串。

GCC 或 Clang 可以吗?如果可能的话,怎么做?

我希望此功能使错误消息可搜索和识别,以便于解析和分析错误。

错误消息已本地化,您可以更改您的语言的错误消息目录以满足您的需要。

或者,您可以修改一些报告错误的通行证,例如使用您的插件(甚至一些 MELT 扩展名)。

但我很惊讶你会问,GCC 源代码包含一个错误消息目录,在源代码的 gcc/po/ 子目录中。

请注意,消息目录正在使用 gettext(3) 机制,因此消息 ID 实际上是英文(C 语言环境)消息本身。