给定c / cpp / .h文件,我想编译它们并找到编译错误(和警告)。
从编译错误,我想生成一个结构或表,如,
{
level: (ERROR/WARNING)
fileName: 'hello.cc'
lineNumber: 24
char: 5 (if available, or can be skipped)
message: 'The description of the error'
}
我查看了一些错误消息。对于来自gcc的许多错误消息,我看一下,所有错误行都以'filename: In function main
'或'filename:lineNumber:column
'开头。所有多行错误消息都是由一些空格缩进的
是否可以安全地假设,以非空格字符开头的行是错误行的开头?
注意:我在过去10年里从未编写过c ++程序,我正在为Codiva.io online compiler构建C / C ++支持(目前只支持java)。我觉得,不是给出一个控制台输出,在每一行解析和显示将是一个很好的用户体验,并为学生节省了大量的时间。解析来自clang编译器的错误消息会更容易吗?
随着即将推出的gcc 9.0,有一个输出JSON的选项:-fdiagnostics-format=json