2010-01-04 137 views

回答

5

阅读文档!

+3

rtfm,可以这么说。 – moritz 2010-01-04 18:00:24

+0

是的......绝对! – ennuikiller 2010-01-04 18:02:24

2

我不确定这是一个合理的问题,因为我不认为“技术”真的是描述理解陌生错误消息的正确范例。更像是你必须习惯于理解你得到什么类型的消息以及它们的意思,就像你学习任何复杂的语言或习惯用法所经历的过程。每次你得到错误,并找出你错了什么,你正在建立你的理解。

等词,时间和重复。

+0

我不同意。有几种技巧可以帮助理解编译器错误消息,以帮助初学者更快地理解给定的错误消息。我怀疑数十年来处理编译器的人可能具备这些技能和基本理解,因此他们甚至不再去思考。随着时间的推移,这些技能肯定会被吸取,但如果能够为刚刚开始的人提供帮助,这将是一件好事。 – 2010-01-04 18:12:33

+0

它可能是你对亚当,但我仍然与史蒂夫。我已经编程了大约30年,但是每当我尝试学习一种新语言(显然是在一个新的编译器上),它几乎就像我再次试图弄清楚编译器想要的WTH。 – 2010-01-04 18:35:05

6

复制并粘贴到Google搜索。

+0

听起来很愚蠢,但它会让你通过像冠军那样难懂的错误的学习曲线。 – 2010-01-04 18:37:26

+0

我希望我能+1000这个答案。如果每次有人问我关于一个编译器的问题时,我都会有一美元,而这个编译器很容易通过搜索Google来回答,我确实是一个非常有钱的人。 – 2012-01-20 14:23:38

5

这可能太明显了,但是从编译器报告的第一条消息开始。其余的可能会从第一个级联。

3

该语言结构的基础知识很有帮助。我记得的一个例子是,当我在大学帮助朋友介绍课程时,其中一人从C++编译器获得了一条消息:“本地函数定义是非法的”。我立即知道提问者已经忘记关闭一个函数的大括号。

问我的人不知道“本地功能定义”甚至意味着什么,这是完全可以理解的。跳转到包含错误消息的行会有所帮助,并且读取消息表明函数定义处于“错误的地方”。知道函数是如何工作的,人们可能会认为这意味着他们意外地试图在另一个函数中声明一个函数。当然,知道函数定义,这是非法的。这将如何发生?最有可能的罪魁祸首是那些大括号。

本质上,我建议你花时间分析一下这封邮件是否真的想要告诉你。它认为你想要做什么,为什么会这样想?根据ennuikiller的反应读取文档也不会造成任何影响。一定程度的经验是必要的,但逻辑思维和演绎会让你走得更远。

1

真的,你必须学习每一个编译器的方言。在你第三次从编译器得到同样的错误信息之后,你开始注意到它的启动模式。最终,只要看到一条消息,你就会知道你必须完成什么样的事情。与此同时,如果邮件的原因不明确,您可以尝试使用Google搜索消息文本中最独特的部分。对于新的编译器我已经有了好运气。

一些编译器比其他编译器有更好的错误信息,但所有真正有用的工作是缩短您的学习曲线。

2

两种技术:

  • 从来不去注意任何消息,但第一。在太多的编译器中,以后的错误信息是spurious

  • 如有疑问,请故意犯错,看看编译器如何诊断它们。

之后,它是谷歌和Stackoverflow对我来说!