Hello, every one. I am working on Ubuntu 14.04. I am porting the ccn-lite(http://www.ccn-lite.net/) to Contiki-OS (http://www.contiki-os.org/). I can use normal gcc to compile and install ccn-lite in my Ubunt.
Then I need arm-none-eabi-gcc to compile the ccn-lite. However, I get this problem:
user@instant-contiki:~/contiki-myTest/examples/cc26xx$ make cc26xx-demo.binusing saved target 'srf06-cc26xx'
mkdir obj_srf06-cc26xx
CC ../../apps/ccn-lite/ccn-lite-relay.c
In file included from /usr/arm-none-eabi/include/dirent.h:6:0,
from ../../apps/ccn-lite/ccn-lite-relay.c:23:
/usr/arm-none-eabi/include/sys/dirent.h:10:2: error: #error "<dirent.h> not supported"
#error "<dirent.h> not supported"
^
In file included from ../../apps/ccn-lite/ccn-lite-relay.c:25:0:
/usr/arm-none-eabi/include/regex.h:43:9: error: unknown type name 'off_t'
typedef off_t regoff_t;
^
In file included from ../../apps/ccn-lite/ccn-lite-relay.c:58:0:
../../apps/ccn-lite/ccnl-os-includes.h:40:24: fatal error: sys/ioctl.h: No such file or directory
# include <sys/ioctl.h>
^
compilation terminated.
When I try to locate where ioctl.h and dirent.h, I get such results
user@instant-contiki:~$ sudo find / -name "dirent.h"
[sudo] password for user:
/usr/local/lib/cc65/include/dirent.h
/usr/src/linux-headers-3.13.0-74/include/linux/dirent.h
/usr/src/linux-headers-3.13.0-62/include/linux/dirent.h
/usr/src/linux-headers-3.13.0-62-generic/include/linux/dirent.h
/usr/src/linux-headers-3.13.0-74-generic/include/linux/dirent.h
/usr/lib/syslinux/com32/include/sys/dirent.h
/usr/lib/syslinux/com32/include/dirent.h
/usr/arm-none-eabi/include/sys/dirent.h
/usr/arm-none-eabi/include/dirent.h
/usr/include/dirent.h
/usr/include/i386-linux-gnu/bits/dirent.h
user@instant-contiki:~$ sudo find / -name "icotl.h"
user@instant-contiki:~$ sudo find / -name "ioctl.h"
/usr/src/linux-headers-3.13.0-74/arch/mips/include/uapi/asm/ioctl.h
/usr/src/linux-headers-3.13.0-74/arch/score/include/uapi/asm/ioctl.h
/usr/src/linux-headers-3.13.0-74/arch/mn10300/include/uapi/asm/ioctl.h
/usr/src/linux-headers-3.13.0-74/arch/s390/include/uapi/asm/ioctl.h
/usr/src/linux-headers-3.13.0-74/arch/ia64/include/uapi/asm/ioctl.h
/usr/src/linux-headers-3.13.0-74/arch/microblaze/include/uapi/asm/ioctl.h
/usr/src/linux-headers-3.13.0-74/arch/m32r/include/uapi/asm/ioctl.h
/usr/src/linux-headers-3.13.0-74/arch/alpha/include/uapi/asm/ioctl.h
/usr/src/linux-headers-3.13.0-74/arch/frv/include/uapi/asm/ioctl.h
/usr/src/linux-headers-3.13.0-74/arch/powerpc/include/uapi/asm/ioctl.h
/usr/src/linux-headers-3.13.0-74/arch/x86/include/uapi/asm/ioctl.h
/usr/src/linux-headers-3.13.0-74/arch/parisc/include/uapi/asm/ioctl.h
/usr/src/linux-headers-3.13.0-74/arch/sparc/include/uapi/asm/ioctl.h
/usr/src/linux-headers-3.13.0-74/arch/cris/include/uapi/asm/ioctl.h
/usr/src/linux-headers-3.13.0-74/include/uapi/asm-generic/ioctl.h
/usr/src/linux-headers-3.13.0-74/include/uapi/linux/hdlc/ioctl.h
/usr/src/linux-headers-3.13.0-74/include/uapi/linux/mmc/ioctl.h
/usr/src/linux-headers-3.13.0-74/include/uapi/linux/ioctl.h
/usr/src/linux-headers-3.13.0-74/include/asm-generic/ioctl.h
/usr/src/linux-headers-3.13.0-62/arch/mips/include/uapi/asm/ioctl.h
/usr/src/linux-headers-3.13.0-62/arch/score/include/uapi/asm/ioctl.h
/usr/src/linux-headers-3.13.0-62/arch/mn10300/include/uapi/asm/ioctl.h
/usr/src/linux-headers-3.13.0-62/arch/s390/include/uapi/asm/ioctl.h
/usr/src/linux-headers-3.13.0-62/arch/ia64/include/uapi/asm/ioctl.h
/usr/src/linux-headers-3.13.0-62/arch/microblaze/include/uapi/asm/ioctl.h
/usr/src/linux-headers-3.13.0-62/arch/m32r/include/uapi/asm/ioctl.h
/usr/src/linux-headers-3.13.0-62/arch/alpha/include/uapi/asm/ioctl.h
/usr/src/linux-headers-3.13.0-62/arch/frv/include/uapi/asm/ioctl.h
/usr/src/linux-headers-3.13.0-62/arch/powerpc/include/uapi/asm/ioctl.h
/usr/src/linux-headers-3.13.0-62/arch/x86/include/uapi/asm/ioctl.h
/usr/src/linux-headers-3.13.0-62/arch/parisc/include/uapi/asm/ioctl.h
/usr/src/linux-headers-3.13.0-62/arch/sparc/include/uapi/asm/ioctl.h
/usr/src/linux-headers-3.13.0-62/arch/cris/include/uapi/asm/ioctl.h
/usr/src/linux-headers-3.13.0-62/include/uapi/asm-generic/ioctl.h
/usr/src/linux-headers-3.13.0-62/include/uapi/linux/hdlc/ioctl.h
/usr/src/linux-headers-3.13.0-62/include/uapi/linux/mmc/ioctl.h
/usr/src/linux-headers-3.13.0-62/include/uapi/linux/ioctl.h
/usr/src/linux-headers-3.13.0-62/include/asm-generic/ioctl.h
/usr/include/i386-linux-gnu/asm/ioctl.h
/usr/include/i386-linux-gnu/sys/ioctl.h
/usr/include/asm-generic/ioctl.h
/usr/include/linux/hdlc/ioctl.hRF Digital's Simblee makes it possible for device developers to embed mobile apps in the devices themselves, passing interface information over Bluetooth Low Energy (BLE) to a generic framework.
/usr/include/linux/mmc/ioctl.h
/usr/include/linux/ioctl.h
I find the compiler use the /usr/arm-none-eabi/include/sys/dirent.h and its content is as follows:
/* <dirent.h> includes <sys/dirent.h>, which is this file. On a
system which supports <dirent.h>, this file is overridden by
dirent.h in the libc/sys/.../sys directory. On a system which does
not support <dirent.h>, we will get this file which uses #error to force
an error. */
#ifdef __cplusplus
extern "C" {
#endif
#error "<dirent.h> not supported"
#ifdef __cplusplus
}
#endif
So the compilation stop. I think the arm compiler should use the dirent.h from the system just as normal gcc does. But obviously it didnt. Why? How to fix it? Thanks.