fatal error: sys/cdefs.h: No such file or directory|

236,173

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.

Share:
236,173

Related videos on Youtube

Mandar
Author by

Mandar

Interested in: Image Processing, Embedded Systems

Updated on September 18, 2022

Comments

  • Mandar
    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
    Patryk almost 10 years
    This worked like a charm. This should be the accepted answer.
  • RobotHumans
    RobotHumans almost 9 years
    Might be better to install gcc-multilib and g++-multilib.
  • Mandar
    Mandar over 8 years
    Installing libc6 and libc6-dev solved it for me. I had also found some reference for it, but sadly i lost it.
  • 林果皞
    林果皞 over 7 years
    libc6-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
    thebunnyrules about 7 years
    Funny, 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
    Alexander Amelkin over 6 years
    @RobotHumans, installing gcc-multilib wants to remove my gcc-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
    RobotHumans over 6 years
    If 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
    Paul Stelian almost 6 years
    That comment :) I have heard that sites in Stack Exchange overall have done this plenty of times before
  • abu_bua
    abu_bua almost 6 years
    Hi and welcome to askubuntu! Please use the guideline of askubuntu.com/editing-help to format your posts.
  • Fabby
    Fabby almost 6 years
    Welcome 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
    Ryan Kozak almost 3 years
    This 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.