0
而试图建立newlib 1.20.0 ... 我跟着这个教程http://wiki.osdev.org/OS_Specific_Toolchain#newlib.2Flibc.2Fsys.2Fmyos冲突的类型“的gettimeofday”,同时建立newlib的交叉编译
而是试图建立newlib我得到以下错误时:
/../newlib-1.20.0/newlib/libc/sys/myos/'`syscalls.c
../../../../../../newlib-1.20.0/newlib/libc/sys/myos/syscalls.c:29:5: error: conflicting types for 'gettimeofday'
In file included from ../../../../../../newlib-1.20.0/newlib/libc/sys/myos/syscalls.c:7:0:
/usr/src/newlib-1.20.0/newlib/libc/include/sys/time.h:74:5: note: previous declaration of 'gettimeofday' was here
Makefile:280: recipe for target `lib_a-syscalls.o' failed
sycalls.c为gettimeofday的声明:
int gettimeofday(struct timeval *p, struct timezone *z);
time.h中:
int _EXFUN(gettimeofday, (struct timeval *__p, void *__tz));
究竟什么是冲突的类型?请帮助....任何帮助表示赞赏...
这里的冲突是syscalls.c中的声明指定第二个参数为'struct timezone *',而在time.h中它是'void *'。 syscalls.c中的那个是正确的。 –
但不是无效*假设接受任何类型的指针......? – Saurabh7
是的,但是如果编译器看到它们仍然不同(因此是冲突)类型,因为虽然void指针可以用来接受所有类型的指针,但它是一个与struct timezone指针不同的独特类型。 –