fatal error: sys/cdefs.h: No such file or directory|
Solution 1
If you are on an amd64 installation, you can try to install the package libc6-dev-i386
. This helped me solve the same issue you encountered while trying to compile smm from i8kutils.
Solution 2
On my machine, where I've probably screwed around too much with 32 and 64 bit architecture files, I resolved this issue by installing g++-multilib
.
Solution 3
Typing the command:
sudo apt-get --reinstall install libc6 libc6-dev
solved the problem.
Solution 4
I know this is an Ubuntu-centric branch of but this page is the first one that came up when I searched this error on Google (even when I put -Ubuntu in the search), so I'm going to share my answer for Arch linux here:
In Arch, I got a /lib/cpp fail sanity check because the package glibc was corrupt and missing all the /usr/include/sys headers. I resolved this error by recompling glibc.
Solution 5
apt install gcc-multilib
will also install the library you need libc6-dev-i386
along with packages you might need in future.
Related videos on Youtube
Comments
-
Mandar over 1 year
It has been weeks that I am trying to use Code::Blocks IDE on Ubuntu 14.04 LTS to program Atmega16, however I am hindered by the following error while compiling/building the program in C::B
/usr/include/features.h|374|fatal error: sys/cdefs.h: No such file or directory|
I have read this thread and based on that I have tried to purge
libc6-dev
and ran into trouble by removing the dependencies. From previous experience I knew that there is a huge probability to get into broken pipe error. I tackled it by installing the lost dependencies.Now still I have the same error.
-
Patryk almost 10 yearsThis worked like a charm. This should be the accepted answer.
-
RobotHumans almost 9 yearsMight be better to install gcc-multilib and g++-multilib.
-
Mandar over 8 yearsInstalling libc6 and libc6-dev solved it for me. I had also found some reference for it, but sadly i lost it.
-
林果皞 over 7 yearslibc6-dev-i386 is one of the additional packages will be installed if i run
sudo apt-get install g++-multilib
in Kali 2016.2. -
thebunnyrules about 7 yearsFunny, I resolved this problem a couple of months ago and I completely forgot about it. So here I was looking for a solution again. Thank god for this site. :)
-
Alexander Amelkin over 6 years@RobotHumans, installing
gcc-multilib
wants to remove mygcc-5-arm-linux-gnueabi
and doesn't seem to install anything actually replacing it. So that doesn't look like a good idea. Sorry. -
RobotHumans over 6 yearsIf you have many compiler toolchains, that would seem like a packaging bug. The multilib one gets you 32 and 64 bit builders, but probably says something silly like remove all other toolchains first to try and prevent conflicts. Worked for me, but I did not have compilers for arm. I use VMs for that.
-
Paul Stelian almost 6 yearsThat comment :) I have heard that sites in Stack Exchange overall have done this plenty of times before
-
abu_bua almost 6 yearsHi and welcome to askubuntu! Please use the guideline of askubuntu.com/editing-help to format your posts.
-
Fabby almost 6 yearsWelcome to Ask Ubuntu! ;-) Could you please review my edits and also review the editing help to improve the readability of your answers in the future... ;-) (CC @abu_bua )
-
Ryan Kozak almost 3 yearsThis was killing me, fresh install of Arch and I couldn't build anything. I check and
/usr/include/sys
is totally empty! Reinstalled glibc and everything is perfect. Thanks a billion.