C compiler error: cdefs.h not found

9.8k views Asked by At

(There are similar questions answered but none really applies to this)

I have a board with Fedora 20 and armv71 architecture (32-bit). I have installed all the gcc libraries via yum which are required such as gcc, g++, cmake, glibc, glibc-devel etc. (glibc-devel is equivalent of libc6-dev-i386 in Fedora).

I'm trying to compile a C project, which compiles just fine on MAC OS 64-bit and Ubuntu 64-bit, but gives me the following error on Fedora 20 when I run make:

/usr/include/features.h:364:25: fatal error: sys/cdefs.h: No such file or directory
 #  include <sys/cdefs.h>

When I check /usr/include/sys folder, it is empty and cdefs.h file does not exist anywhere on the system.

The problem seems to be I'm missing a package (possibly?) but cannot figure out which one is missing since I seem to have all installed. Or 32-bit C compiler missing that file for a specific reason? Any help would be appreciated.

2

There are 2 answers

2
Oldest Software Guy On

Since you are on an RPM-based distro, you can do this:

# yum provides '*sys/defs.h'

and let the tool do the hard part.

0
zengkaixin On

using this command (or a similar one, depending on your OS)

apt-get install libc6-dev-i386