为什么我使用 C 语言在 CodeVisionAVR 中得到未定义的符号 'sprintf'?
Why am I getting undefined symbol 'sprintf' in CodeVisionAVR using C language?
我正在使用 C 在 CodeVision AVR 中编码,我想从 0 计数到 100(计数器),然后在 Proteus 的 LCD 上显示它。在 CodeVision 中选择“Build All”时,出现此错误。我不知道为什么。
undefined symbol 'sprintf'
代码:
#include <mega16.h>
#include <delay.h>
#include <alcd.h>
void main(void)
{
int i;
char buffer[10];
lcd_init(16);
while(1)
{
for(i=0;i<=100;i++)
{
lcd_clear();
lcd_gotoxy(0,0);
sprintf(buffer, "Time=%2d", i);
lcd_putsf(buffer);
delay_ms(100);
}
}
}
确保您有 #include <stdio.h>
也使用 lcd_puts(buffer);
而不是 lcd_putsf(buffer);
lcd_putsf()
是lcd打印功能的flash版本。你声明你的字符数组的方式,它是在 ram 而不是 flash,所以你必须使用其他 lcd 打印功能。
我正在使用 C 在 CodeVision AVR 中编码,我想从 0 计数到 100(计数器),然后在 Proteus 的 LCD 上显示它。在 CodeVision 中选择“Build All”时,出现此错误。我不知道为什么。
undefined symbol 'sprintf'
代码:
#include <mega16.h>
#include <delay.h>
#include <alcd.h>
void main(void)
{
int i;
char buffer[10];
lcd_init(16);
while(1)
{
for(i=0;i<=100;i++)
{
lcd_clear();
lcd_gotoxy(0,0);
sprintf(buffer, "Time=%2d", i);
lcd_putsf(buffer);
delay_ms(100);
}
}
}
确保您有 #include <stdio.h>
也使用 lcd_puts(buffer);
而不是 lcd_putsf(buffer);
lcd_putsf()
是lcd打印功能的flash版本。你声明你的字符数组的方式,它是在 ram 而不是 flash,所以你必须使用其他 lcd 打印功能。