
ICC AVR编译时常见的错误报告.docx
9页本文格式为Word版,下载可任意编辑ICC AVR编译时常见的错误报告 ICC AVR编译时常见的错误报告 新手用ICC编程的时候,经常会展现一些错误,现在将常见的错误报告整理如下: 一、正常编译通过 CODE: C:\\icc\\bin\\imakew -f main.mak iccavr -c -IC:\\icc\\include\\ -e -DATMEGA -DATMega16 -l -g -Mavr_enhanced D:\\桌面\\测验教程\\LED应用\\霓虹灯\\main.c iccavr -o main -LC:\\icc\\lib\\ -g -ucrtatmega.o -bfunc_lit:0x54.0x4000 -dram_end:0x45f -bdata:0x60.0x45f -dhwstk_size:16 -beeprom:1.512 -fihx_coff -S2 @main.lk -lcatmega Device 1% full. Done. [Copy to clipboard] 这是我们最想看到的了,万事大吉。
二、工程中未参与.C文件 CODE: C:\\icc\\bin\\imakew -f main.mak iccavr -o main -LC:\\icc\\lib\\ -g -ucrtatmega.o -bfunc_lit:0x54.0x4000 -dram_end:0x45f -bdata:0x60.0x45f -dhwstk_size:16 -beeprom:1.512 -fihx_coff -S2 @main.lk -lcatmega unknown file type @main.lk, passed to linker !ERROR unknown file type '@main.lk' C:\\icc\\bin\\imakew.exe: Error code 1 Done: there are error(s). Exit code: 1 [Copy to clipboard] 解决手段:将你的程序参与工程中,可以右键程序区>>ADD to project 三、程序没有后缀名,或者后缀名不正确 CODE: C:\\icc\\bin\\imakew -f main.mak C:\\icc\\bin\\imakew.exe: 'main' is up to date Done. [Copy to clipboard] 这是一个很难理解的错误,它是由工程中的程序文件没有后缀名造成的。
解决手段:将原有文件移出工程,将文件的后缀名改为.C,然后再参与工程中 四、没有main函数 CODE: C:\\icc\\bin\\imakew -f main.mak iccavr -c -IC:\\icc\\include\\ -e -DATMEGA -DATMega16 -l -g -Mavr_enhanced D:\\桌面\\测验教程\\LED应用\\霓虹灯\\main.c iccavr -o main -LC:\\icc\\lib\\ -g -ucrtatmega.o -bfunc_lit:0x54.0x4000 -dram_end:0x45f -bdata:0x60.0x45f -dhwstk_size:16 -beeprom:1.512 -fihx_coff -S2 @main.lk -lcatmega !ERROR file 'crtatmega.o': undefined symbol '_main' C:\\icc\\bin\\imakew.exe: Error code 1 Done: there are error(s). Exit code: 1 [Copy to clipboard] 解决手段,编写程序主函数MAIN。
五、没有选择目标芯片展现如下错误: CODE: C:\\icc\\bin\\imakew -f main.mak iccavr -c -IC:\\icc\\include\\ -e -l -g -Wa-W D:\\桌面\\测验教程\\LED应用\\霓虹灯\\main.c iccavr -o main -LC:\\icc\\lib\\ -g -Wl-W -bfunc_lit:0.0x2000 -dram_end:0x25f -bdata:0x60.0x25f -dhwstk_size:16 -beeprom:1.512 -fihx_coff -S2 @main.lk !E C:\\icc\\lib\\crtAVR.o(41): Code address 0 already contains a value !E C:\\icc\\lib\\crtAVR.o(41): Code address 0x1 already contains a value C:\\icc\\bin\\imakew.exe: Error code 1 Done: there are error(s). Exit code: 1 [Copy to clipboard] 解决手段:project>>Options>>target>>device configuration 选择适合的芯片。
六、缺少分号 CODE: C:\\icc\\bin\\imakew -f main.mak iccavr -c -IC:\\icc\\include\\ -e -DATMEGA -DATMega16 -l -g -Mavr_enhanced D:\\桌面\\测验教程\\LED应用\\霓虹灯\\main.c !E D:\\桌面\\测验教程\\LED应用\\霓虹灯\\main.c(52): unrecognized statement !E D:\\桌面\\测验教程\\LED应用\\霓虹灯\\main.c(53): syntax error; found `}' expecting `;' !E D:\\桌面\\测验教程\\LED应用\\霓虹灯\\main.c(53): syntax error; found `end of input' expecting `}' C:\\icc\\bin\\imakew.exe: Error code 1C:\\icc\\bin\\imakew.exe: 'main.o' removed. Done: there are error(s). Exit code: 1 [Copy to clipboard] 上面的报告说领略第52行缺少一个分号,预期分号的地方展现了“}”。
解决方法,在52行末尾添加分号类似的有:缺少}的报错 CODE: C:\\icc\\bin\\imakew -f main.mak iccavr -c -IC:\\icc\\include\\ -e -DATMEGA -DATMega16 -l -g -Mavr_enhanced D:\\桌面\\测验教程\\LED应用\\霓虹灯\\main.c !E D:\\桌面\\测验教程\\LED应用\\霓虹灯\\main.c(55): illegal statement termination !E D:\\桌面\\测验教程\\LED应用\\霓虹灯\\main.c(55): skipping `void' !W D:\\桌面\\测验教程\\LED应用\\霓虹灯\\main.c(55):[warning] calling function without prototype may cause errors !E D:\\桌面\\测验教程\\LED应用\\霓虹灯\\main.c(56): syntax error; found `{' expecting `;' !E D:\\桌面\\测验教程\\LED应用\\霓虹灯\\main.c(57): syntax error; found `end of input' expecting `}' C:\\icc\\bin\\imakew.exe: Error code 1C:\\icc\\bin\\imakew.exe: 'main.o' removed. Done: there are error(s). Exit code: 1 [Copy to clipboard] 七:变量没有定义 CODE: C:\\icc\\bin\\imakew -f main.mak iccavr -c -IC:\\icc\\include\\ -e -DATMEGA -DATMega16 -l -g -Mavr_enhanced D:\\桌面\\测验教程\\LED应用\\霓虹灯\\main.c !E D:\\桌面\\测验教程\\LED应用\\霓虹灯\\main.c(48): undeclared identifier `i' C:\\icc\\bin\\imakew.exe: Error code 1C:\\icc\\bin\\imakew.exe: 'main.o' removed. Done: there are error(s). Exit code: 1 [Copy to clipboard] 解决手段:在程序开头前添加变量定义,譬如unsigned char i;留神,定义变量要在函数的最前面举行,及在举行计算操作之前定义全体变量。
第 1 楼 : 回复主题:ICCAVR报错集锦 发布时间 : 2022-2-25 下午5:00 提问者 : Williams 感谢 [小飞]一凡 供给下面的内容 !E touchpad.c(67): unrecognized statement !E touchpad.c(68): syntax error; found `void' expecting `;'上一行缺少“;”号所致 !W touchpad.c(325):[warning] calling function without prototype may cause errors没有在头文件中添加调用的函数库 !E E:\\ICCAVR\\icc\%user001\\main.c(100): undeclared identifier `temp'错误:变量'temp'未声明!E D:\\iccavr6.31.A\\icc\\lib\\crtAVR.(41):Codeaddress 0 already contains a value !E D: \\iccavr6.31.A\\icc\\lib\\crtAVR.(41):Codeaddress 0x1 already contains a value 没有选择芯片型号。
!E library(31) area ' text' not large enough程序空间不够 ?!E _3Q0.AAA(0): area 'data' not large enough 内存缺乏 C:/icc/include/iom8v.h(18): D:\\icc圆织机程序\\8.c(288): Macro 。
