EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 Heaven_1 于 2024-7-5 11:12 编辑 8 ?6 S; S, a3 A- L, W$ d T1 U
) r; e1 J! P, a( [+ m' q遇到的keil相关错误,警告内容在这里进行更新
. w/ Z. p% {/ M6 m5 F6 bWarning:
! ]; ^! p# u/ M- P" L: O" f0 M5 k6 U; H#1-D: last line of file ends without a newline 文件最后一行不是新行 + ^2 t7 _$ [6 l" S
解决:保证文件最后一行什么符号也没有。 1 i8 {1 y$ \5 S4 b# a
#167-D: argument of type "x" is incompatible with parameter of type "xxx" 类型“x”的参数与类型“xxx”的参数不兼容 $ o9 R6 m3 ^1 O/ e/ q3 c$ j
解决:之所以是警告多是因为虽然声明的参数不同但是依然可以兼容,例如说char型和uint8都是8位的1字节的数据,按照需求进行更改 6 a7 n4 O5 r6 d
#177-D: variable "" was declared but never referenced 变量""声明了但是从未引用过
3 w: G; j# J; T) |7 u. E9 o" C# V6 r解决:删除这个变量,但有时候是因条件(比如if)赋值时候才使用到的变量也可能会产生这一句警告。 & F7 r0 r9 }; G j
#940-D: missing return statement at end of non-void function "xxxx" 没有返回值 : j! K8 d+ D2 v% W
解决:检查并在所指出的函数中添加返回值语句,通常是编写程序时候设定了返回类型但是没有设定返回值,需要注意的是这个问题有时候会导致建立文件时产生错误。 1 T X/ y3 f+ M- l4 X
Error:
1 U& a: J( H2 |& |; Q4 K" g. kL6200E: Symbol xxx multiply defined 符号xxx多重定义
+ f1 M0 J. w. |# ~解决:这个问题困扰了一个上午,用了各种排除法,注释法来确定到底是哪里出错。先是注释掉了所有在其他文件中对这个函数的引用,然后试着新建一个文件,重新放入函数,重写的文件就没有出错,但是只要是在这个文件中定义函数无论是否引用就都会出现错误,最后发现是有个include写错了,写成了include "xxxx.c",导致一直出现这样一个警告。
7 ^) u0 b8 k: `! e#159: declaration is incompatible with previous "xxxxx"
2 ?# I6 n2 N5 ?- _7 U& y解决:这个问题由在文件中调用某个函数,但是在调用语句之后才声明函数导致,向头文件添加声明,或者在使用该函数语句前声明这一个函数
: ^" ^4 F2 T3 \* j* K3 a: o m0 H#114: function "xxx" was referenced but not defined & U9 \. J7 U" \7 M% i9 N
解决:去除发生错误的这个函数.c和.h文件的static静态声明
3 F$ I/ ?4 \& }" G4 {2 P4 x2 \$ I! M1 l) d
) [- T0 a( r3 I r! j( @8 ? |