gcc 错误消息存储库
Posted
技术标签:
【中文标题】gcc 错误消息存储库【英文标题】:gcc error message repository 【发布时间】:2010-12-16 18:00:30 【问题描述】:我花了很多时间使用 Microsoft 编译器 cl,发现它在编译消息中给出的错误代码(如 C1234、C5432 等)非常有用。当我遇到一个我不熟悉的错误时,我可以轻松地在 MSDN 上查找它并获得更详细的解释。
现在我几乎只使用 gcc,但我发现我错过了这个功能。当我在 gcc 中遇到一些错误时,我似乎花了很多时间在谷歌上搜索错误的文本以获取有关它的信息。是否有一些 ,其中每条都进行了更详细的解释?
【问题讨论】:
复制:***.com/questions/1043379/gnu-c-error-messages 【参考方案1】:我不知道任何完整的存储库,包括完整的解释,但对于我自己来说:
随着时间的推移,您将了解特定错误消息的含义(尤其是“您缺少;
,但编译器无法判断”)。
谷歌搜索错误消息中引号中的常量部分(例如不包括函数名称)通常会在前 3-5 次匹配中给出很好的解释。
与模板相关的错误通常是最严重的。对于那些,编译器给你两个行号:模板代码存在的地方,以及它被实例化的地方。在上下文中查看两行代码通常可以使事情变得更加清晰(“为什么要使用 THAT 重载?”)。有时,最简单的方法是使用更简单的类型创建一个测试程序,以计算出编译器告诉你的内容(因为在错误消息中显示 typedef 并没有足够的帮助)。
如果是一小段代码,请在不同的编译器中尝试(例如 Comeau online),看看错误是否更清楚。
【讨论】:
【参考方案2】:我发现谷歌搜索确切的错误消息(省略更改的内容,例如变量/函数名称)可以得到很好的结果。有时将错误消息的全部或部分括在引号中会有所帮助,以便将其视为一个句子而不是单词的集合。
This page 解释了一些更基本的错误消息。
如果您遇到特别令人费解的事情,您无法弄清楚,您当然可以随时询问。
【讨论】:
与其他任何事情一样,有一个学习曲线。随着时间的推移,您会发现绝大多数错误都是直截了当的,而那些必须查找才会很少见的错误(其中最棘手的错误是那些看起来不像的错误。) 但这正是重点。当我遇到一个我从未见过的错误并且它使用了一些神秘的措辞时,如果能够快速查找错误而不怀疑信息来源的可靠性有多好,那就太好了。许多像这样的错误都与 C/C++ 标准的特定部分有关;参考哪里会很好。问题的答案是否,没有存储库或参考,或者您只是不知道一个? 虽然我很高兴得到证明,但现在应该很清楚,不存在这样的事情。此外,之前也有人问过同样的问题:***.com/questions/1043379/gnu-c-error-messages以上是关于gcc 错误消息存储库的主要内容,如果未能解决你的问题,请参考以下文章
GDB 错误消息 (GCC 4.7) (来自 macports)