Forum: Mikrocontroller und Digitale Elektronik Grasshopper time.h


von Daniel (Gast)


Lesenswert?

Hallo,

ich versuche ein einfaches C-Programm zur Ausgabe der aktuellen Zeit für 
das Grasshopper Board zu schreiben, aber leider bekomme ich schon beim 
Include der time.h Probleme:
1
...
2
#include <linux/time.h>
3
...

Ausgabe:
1
avr32-linux-gcc -pipe -O2 -g -Wall -D_GNU_SOURCE  -c -o ioTest.o ioTest.c
2
In file included from /home/daniel/local/buildroot-avr32-v2.2.1/build_avr32/staging_dir/lib/gcc/avr32-linux-uclibc/4.2.2/../../../../avr32-linux-uclibc/sys-include/sched.h:29,
3
                 from /home/daniel/local/buildroot-avr32-v2.2.1/build_avr32/staging_dir/lib/gcc/avr32-linux-uclibc/4.2.2/../../../../avr32-linux-uclibc/sys-include/pthread.h:20,
4
                 from /home/daniel/local/buildroot-avr32-v2.2.1/build_avr32/staging_dir/lib/gcc/avr32-linux-uclibc/4.2.2/../../../../avr32-linux-uclibc/sys-include/bits/uClibc_mutex.h:15,
5
                 from /home/daniel/local/buildroot-avr32-v2.2.1/build_avr32/staging_dir/lib/gcc/avr32-linux-uclibc/4.2.2/../../../../avr32-linux-uclibc/sys-include/bits/uClibc_stdio.h:119,
6
                 from /home/daniel/local/buildroot-avr32-v2.2.1/build_avr32/staging_dir/lib/gcc/avr32-linux-uclibc/4.2.2/../../../../avr32-linux-uclibc/sys-include/stdio.h:72,
7
                 from ioTest.c:2:
8
/home/daniel/local/buildroot-avr32-v2.2.1/build_avr32/staging_dir/lib/gcc/avr32-linux-uclibc/4.2.2/../../../../avr32-linux-uclibc/sys-include/time.h:122: error: redefinition of 'struct timespec'
9
In file included from /home/daniel/local/buildroot-avr32-v2.2.1/build_avr32/staging_dir/lib/gcc/avr32-linux-uclibc/4.2.2/../../../../avr32-linux-uclibc/sys-include/pthread.h:21,
10
                 from /home/daniel/local/buildroot-avr32-v2.2.1/build_avr32/staging_dir/lib/gcc/avr32-linux-uclibc/4.2.2/../../../../avr32-linux-uclibc/sys-include/bits/uClibc_mutex.h:15,
11
                 from /home/daniel/local/buildroot-avr32-v2.2.1/build_avr32/staging_dir/lib/gcc/avr32-linux-uclibc/4.2.2/../../../../avr32-linux-uclibc/sys-include/bits/uClibc_stdio.h:119,
12
                 from /home/daniel/local/buildroot-avr32-v2.2.1/build_avr32/staging_dir/lib/gcc/avr32-linux-uclibc/4.2.2/../../../../avr32-linux-uclibc/sys-include/stdio.h:72,
13
                 from ioTest.c:2:
14
/home/daniel/local/buildroot-avr32-v2.2.1/build_avr32/staging_dir/lib/gcc/avr32-linux-uclibc/4.2.2/../../../../avr32-linux-uclibc/sys-include/time.h:105: error: conflicting types for 'timer_t'
15
/home/daniel/local/buildroot-avr32-v2.2.1/build_avr32/staging_dir/lib/gcc/avr32-linux-uclibc/4.2.2/../../../../avr32-linux-uclibc/sys-include/linux/types.h:22: error: previous declaration of 'timer_t' was here
16
/home/daniel/local/buildroot-avr32-v2.2.1/build_avr32/staging_dir/lib/gcc/avr32-linux-uclibc/4.2.2/../../../../avr32-linux-uclibc/sys-include/time.h:165: error: redefinition of 'struct itimerspec'
17
make: *** [ioTest.o] Fehler 1

Woran könnte das liegen?

Viele Grüße,
Daniel

von Peter D. (pdiener) Benutzerseite


Lesenswert?

Kann es sein, dass time.h bereits standardmäßig includiert wird, oder 
dass du den falschen Pfad angegeben hast?

Versuch es mal ohne dem include
und auch mal mit

#include <time.h>

Grüße,

Peter

von Daniel (Gast)


Lesenswert?

Super, danke.
Ich verwende nun <time.h> und nicht <linux/time.h>. Dazu wird <time.h> 
durch Verwendung von <stdio.h> wohl schon eingebunden, also kann ich es 
in dem Fall sogar ganz weglassen. So funktioniert es nun.

Gibt es eine Dokumentation darüber, welche Header man einbinden sollte? 
Oder weiß man sowas "einfach"?

Viele Grüße,
Daniel

von Robert W. (rweber)


Lesenswert?

Daniel schrieb:
> Gibt es eine Dokumentation darüber, welche Header man einbinden sollte?
> Oder weiß man sowas "einfach"?

Das steht eigentlich immer in der zur Funktion gehoerigen Manpage.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.