سلام خسته نباشید!
من یه مشکلی دارم که خیلی عجیب و غریب و بی ریشه است - من برای AVR یه برنامه نوشتم که یه چیزی رو توی خروجی UART نشون بده
حالا کامپایل نمیشه ! نمیدونم چرا ! انگار کتابخونه STDIO.h مشکل داره برنامه این هست:
#include <stdio.h>
static int uart_putchar(char c, FILE *stream);
static FILE mystdout = FDEV_SETUP_STREAM(uart_putchar, NULL,
_FDEV_SETUP_WRITE);
static int
uart_putchar(char c, FILE *stream)
{
if (c == '\n')
uart_putchar('\r', stream);
loop_until_bit_is_set(UCSRA, UDRE);
UDR = c;
return 0;
}
int
main(void)
{
init_uart();
stdout = &mystdout;
printf("Hello, world!\n");
return 0;
}
این دقیقا همون کدی هست که توی مثال های کتابخونه برای کار با این کتابخونه ارایه شده وحالا خطایی که میده اینه
main.c:(.text+0x1e)||undefined reference to `stdout'|
حاکی از این که stdout تعریف نشده
کل نت رو زیر و رو کردم چیزی دستگیرم نشد !
همین کد رو توی ویندوز برای winavr نوشتم که همون gcc تحت ویندوز هست کار میکنه و مشکلی نداره !
گفتم شاید کتابخونه خراب نصب شده اونو پاک کردم و دوباره نصب کردم ولی خوب بازم فرجی نشد
desktop:~$ sudo apt-get remove avr-libc
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be REMOVED:
avr-libc
0 upgraded, 0 newly installed, 1 to remove and 457 not upgraded.
After this operation, 29.3MB disk space will be freed.
Do you want to continue [Y/n]? y
(Reading database ... 131904 files and directories currently installed.)
Removing avr-libc ...
desktop:~$ sudo apt-get install avr-libc
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
avr-libc
0 upgraded, 1 newly installed, 0 to remove and 457 not upgraded.
Need to get 0B/5,117kB of archives.
After this operation, 29.3MB of additional disk space will be used.
Selecting previously deselected package avr-libc.
(Reading database ... 130370 files and directories currently installed.)
Unpacking avr-libc (from .../avr-libc_1%3a1.6.7-1ubuntu2_all.deb) ...
Setting up avr-libc (1:1.6.7-1ubuntu2) ...
حالا حسابی موندم توش که خوب یعنی چی ؟!این خطایی که داره میده !