keil编译不过的常见问题
1、编码方式不统一
编译报错例
复制其他人的代码时可能会
将代码粘贴到富文本编译器:
build报的错:
\a807d 是一个Unicode编码
Unicode可同时包含65536个字符,ASCII/ANSI只包含255个字符,实际上是Unicode的一个子集。Unicode字符通常用十六进制编码方案表示,范围在’\u0000’到’\uFFFF’之间。\u0000到\u00FF表示ASCII/ANSI字符。\u表示这是一个Unicode值.
解决方法 改成同一编码方式
2、重复定义
编译报错
linking…
…\project2.axf: Error: L6200E: Symbol __ARM_use_no_argv multiply defined (by main1.o and main.o).
…\project2.axf: Error: L6200E: Symbol main multiply defined (by main1.o and main.o).
Not enough information to list image symbols.
Not enough information to list the image map.
解决方法
保证工程里只有一个含有main()的c文件
这个应该是一个工程里只能有一个main()入口
keil build的话会整体将USER里的内容编译每一个main()都会光顾,所以就会出现重复定义这种错误,只要保证一个工程里只有一个main()就行。
或者保证USER里只有一个含有main()的c文件
把USER里其他含有main()的c文件都删除(不引入就可以)