Hier wird die minimale C-Programm zu reproduzieren:#including <alsa/asoundlib.h> und <sys/time.h> Ergebnisse in mehrfacher Definition Konflikt
#include <alsa/asoundlib.h>
#include <sys/time.h>
int main(void)
{
}
Das mit gcc -c -o timealsa.o timealsa.c
kompilieren, aber wenn Sie schließen die -std=c99
Schalter, Sie erhält einen Neudefinition Fehler:
In file included from /usr/include/sys/time.h:28:0,
from timealsa.c:3:
/usr/include/bits/time.h:30:8: error: redefinition of ‘struct timeval’
struct timeval
^
In file included from /usr/include/alsa/asoundlib.h:49:0,
from timealsa.c:2:
/usr/include/alsa/global.h:138:8: note: originally defined here
struct timeval {
^
Wie kann ich diesen Konflikt lösen, während immer noch -std=c99
mit?
Sie sollten den Mindeststandard der Haupt verwenden, die ** int main (void) ist {return 0;} ** – Michi
Ja, du hast Recht (aber das ist eine weitere Zeile!) – Lombard
@Michi die 'return 0 ' ist implizit, wenn nicht in _C99_ vorhanden (Whcih ist diese Frage markiert). Siehe: http://stackoverflow.com/questions/4138649/why-is-return-0-optional. Die Lücke ist ein Problem obwohl –