在下文中,我没有定义类型doesntexist
。
void myfunction(doesntexist argument)
{
}
GCC 4.7.2 说“error: variable or field ‘myfunction’ declared void
”
我的问题是:编译器在这里指代函数名称为 void 而不是参数类型是怎么想的?
[编辑]
在投票之前,请注意这个问题的答案与错误的顺序和-Wfatal-errors
停止打印更直接相关的消息有关。这不仅仅是我在尝试一个稍微模糊的编译器消息。
谢谢,@JoachimPileborg。未经编辑的错误日志没有包含任何有用的信息,但它应该有!评论引导我找到问题和解决方案...从我的 makefile 中删除 -Wfatal-errors
。
19:17 >>> gcc -Wfatal-errors main.c
main.c:2:17: error: variable or field ‘myfunction’ declared void
compilation terminated due to -Wfatal-errors.
并删除 -Wfatal-errors
...
19:18 >>> gcc main.c
main.c:2:17: error: variable or field ‘myfunction’ declared void
main.c:2:17: error: ‘doesntexist’ was not declared in this scope
问题已解决。
对于那些说“为什么首先要使用 -Wfatal-errors
?”的人:我通常不想要所有 错误作为第一个可以触发其余的。在这种情况下,错误似乎是乱序给出的,或者至少是意外的顺序——我假设编译器会首先遇到 ‘doesntexist’ was not declared
错误。