gcc错误消息存储库

发布于 2024-10-08 07:38:32 字数 232 浏览 1 评论 0原文

我花了很多时间使用 Microsoft 编译器 cl,发现它在编译消息中给出的错误代码(如 C1234、C5432 等)非常有用。当我遇到一个我不熟悉的错误时,我可以轻松地在 MSDN 上查找它并获得其含义的更详细解释。

现在我几乎只使用 gcc,我发现我怀念这个功能。当我在 gcc 中遇到一些错误时,我似乎花了很多时间在谷歌上搜索错误文本以获取有关它的信息。是否有一些 gcc 错误消息存储库,其中每一条错误消息都有更详细的解释?

I've spent a lot of time using the Microsoft compiler cl and found that the error codes that it gives in compile messages (like C1234, C5432, etc.) can be very useful. When I get a error I'm unfamiliar with I can easily look it up on MSDN and get a more detailed explanation of what it means.

Now I'm using gcc almost exclusively and I find that I miss that feature. When I get some error in gcc I seem to spend a lot of time googling for the text of the error for information about it. Is there some repository of gcc error messages where each one is explained in more detail?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

素衣风尘叹 2024-10-15 07:38:32

我不知道任何完整的存储库包括完整的解释,但对我自己来说:

  • 随着时间的推移,您将了解特定错误消息的含义(特别是“您缺少 ; 但编译器不能说”)。
  • 在谷歌上搜索引号中的错误消息的常量部分(例如,不包括函数名称)通常会在前 3-5 个命中中给出非常好的解释。
  • 与模板相关的错误通常是最严重的。对于这些,编译器会为您提供两个行号:模板代码存在的位置和实例化的位置。在上下文中查看这两行代码通常可以使事情变得更加清晰(“为什么它使用那个重载?”)。有时,最简单的方法是使用更简单的类型创建一个测试程序,以计算出编译器告诉您的内容(因为在错误消息中显示 typedef 没有足够的帮助)。
  • 如果是一小段代码,请在不同的编译器(例如 Comeau online)中尝试一下,看看错误是否更清晰。

I'm not aware of any complete repository including full explanations, but for myself:

  • Over time you'll learn what particular error messages mean (especially in terms of "you're missing a ; but the compiler can't tell").
  • Googling for the constant part of the error message in quotes (not including function names for example) often gives very good explanations in the first 3-5 hits.
  • Template related errors are usually the worst. For those, the compiler gives you two line numbers: The place the template code exists, and the place it's being instantiated. Looking at both lines of code in context can often make things far more clear ("Why is it using THAT overload?"). Sometimes the simplest way is to create a test program with way simpler types to work out what the compiler's telling you (since it won't be helpful enough to show typedefs in the error message).
  • If it's a small piece of code, try it in a different compiler (for example Comeau online) and see if the error is clearer.
山色无中 2024-10-15 07:38:32

我发现通过谷歌搜索确切的错误消息(忽略发生变化的内容,例如变量/函数名称)可以得到很好的结果。有时,将错误消息的全部或部分用引号引起来会有所帮助,以便将其视为句子而不是单词的集合。

此页面解释了一些更基本的错误消息。

如果你遇到一些特别复杂的事情,你无法弄清楚,你当然可以随时询问SO。

I find that Googling the exact error message (omitting things that change, such as variable/function names) gives pretty good results. It sometimes helps to enclose all or part(s) of the error message in quotes so that it is treated as a sentence rather than a collection of words.

This page explains some of the more basic error messages.

If you encounter something particularly convoluted that you have trouble figuring out, you can of course always ask on SO.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文