没有写分号
[Error] expected ';' before 'xxx'
Dev-c通常喜欢把错误定在问题行的下一行。
遇到这个错误优先排查是不是缺少分号导致的,然后再排查是不是由于其它地方出现错误而导致编译器误以为是缺少分号。
错误将关系运算符“==”写成了赋值符号“=”
[Error] lvalue required as left operand of assignment
左值必须作为赋值的左操作数
~~其实吧……不是很理解为什么报错是这个意思,搜了一圈也没有找到解决方案……求大佬科普
abs()函数的标准库引用错误
[Error] 'abs' was not declared in this scope
abs在代码范围内没有被定义.
abs()函数确实没有在<math.h>中定义,它是在<stdlib.h>中定义的。
所以应该写#include <stdlib.h>
Dev-c没有开启C99标准支持导致不能再for内声明变量
[Error] 'i' was not declared in this scope
因为Dev-c默认不开启C99支持,按照C89编译。而从C99标准起,C语言才加入了临时变量在for循环中定义的特性。因此开启C99支持即可。
步骤:工具 > 编译选项 > “编译时加入以下指令”多选框打勾 > 填入“-std=c99”
这种情况通常与一个Warning共同出现:
[Warning] command line option '-std=c99' is valid for C/ObjC but not for C++ [enabled by default]
错误 C2447 “{”: 缺少函数标题(是否是老式的形式表?)
乍一看看不懂,实际上是由于编译器觉得你没有函数头,只有函数体导致的。
所以你要检查是不是把函数头变成了空语句。
[Error] ld returned 1 exit status
有多种错误原因
没有函数入口
实际上在这个错误之前,应该还有这样一段:
[Linker error] C:Program Files (x86)Dev-CppMinGW32lib/libmingw32.a(main.o):main.c:(.text.startup+0xa7): undefined reference to `WinMain@16'
链接器抛出了一个异常:找不到 WinMain 函数。而WinMain是windows程序的入口函数。则说明我们的程序没有main()这个入口函数。
0 条评论