编译器随机抛出不同的错误

时间:2010-10-30 23:09:43

标签: c compiler-errors

每次编译C项目时,我都会遇到不同的错误。在构建过程中随机出现了3组,所有这些都是

syntax error before 'foo'

syntax error before 'foo' token.

它们发生在不同的文件中,并且没有明显的语法错误。

我正在使用Windows 7,Eclipse和C / C ++插件来制作C项目和gcc 3.4.5(mingw-vista special r3)。正在使用以下标志:

-O0 -g3 -Wall -c -fmessage-length=0  

我检查并重新检查了所有文件以获取预处理器语法错误,但没有找到任何内容。

我的源代码中的哪些错误可以产生这种奇怪的行为?如何在将来避免这种麻烦?

2 个答案:

答案 0 :(得分:1)

虽然没有源代码诊断编译错误基本上是不可能的,但我会试一试。

可能导致看似无法解释的语法错误,例如缺少或多余的括号或分号。至少那几乎总是我发现的,当编译器抱怨的代码没有任何错误时。所以,不要只看同一行代码,也要看前面的代码行。

我能想到的另一个可能原因是您的源代码使用了非标准的C功能或语法。或者,当您的编译器采用C89语法时,您的源代码会使用C99功能。

答案 1 :(得分:0)

我发现错误,这是一个相互“包含”的声明。

Client.h包括Cashier.h,其中还包括Client.h ......

显然,这会在完全不相关的行(甚至文件!)上生成语法错误。