每次编译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
我检查并重新检查了所有文件以获取预处理器语法错误,但没有找到任何内容。
我的源代码中的哪些错误可以产生这种奇怪的行为?如何在将来避免这种麻烦?
答案 0 :(得分:1)
虽然没有源代码诊断编译错误基本上是不可能的,但我会试一试。
可能导致看似无法解释的语法错误,例如缺少或多余的括号或分号。至少那几乎总是我发现的,当编译器抱怨的代码没有任何错误时。所以,不要只看同一行代码,也要看前面的代码行。
我能想到的另一个可能原因是您的源代码使用了非标准的C功能或语法。或者,当您的编译器采用C89语法时,您的源代码会使用C99功能。
答案 1 :(得分:0)
我发现错误,这是一个相互“包含”的声明。
Client.h包括Cashier.h,其中还包括Client.h ......
显然,这会在完全不相关的行(甚至文件!)上生成语法错误。