error fatal: sys / cdefs.h: No existe tal archivo o directorio |

109

Hace semanas que trato de usar Code :: Blocks IDE en Ubuntu 14.04 LTS para programar Atmega16, sin embargo, tengo el siguiente error al compilar / construir el programa en C :: B

/usr/include/features.h|374|fatal error: sys/cdefs.h: No such file or directory|

He leído este hilo y en base a eso he intentado purgar libc6-devy me he encontrado con problemas eliminando las dependencias. Por experiencia previa, sabía que existe una gran probabilidad de tener un error de tubería rota. Lo aborde instalando las dependencias perdidas.

Ahora todavía tengo el mismo error.

Mandarín
fuente
1
Posible duplicado de ¿Cómo encuentro el paquete que proporciona un archivo?
David Foerster

Respuestas:

154

Si está en una instalación de amd64, puede intentar instalar el paquete libc6-dev-i386. Esto me ayudó a resolver el mismo problema que encontró al intentar compilar smm desde i8kutils.

zerwas
fuente
99
Funcionó como por arte de magia. Esta debería ser la respuesta aceptada.
Patryk
14
Podría ser mejor instalar gcc-multilib y g ++ - multilib.
RobotHumans
Instalar libc6 y libc6-dev lo resolvió por mí. También había encontrado alguna referencia para ello, pero lamentablemente lo perdí.
Mandar
44
libc6-dev-i386 es uno de los paquetes adicionales que se instalarán si ejecuto sudo apt-get install g++-multiliben Kali 2016.2.
林果 皞
3
Si tiene muchas cadenas de herramientas de compilación, eso parecería un error de empaquetado. El multilib te proporciona constructores de 32 y 64 bits, pero probablemente dice algo tonto como eliminar todas las otras cadenas de herramientas primero para tratar de evitar conflictos. Me funcionó, pero no tenía compiladores para el brazo. Yo uso máquinas virtuales para eso.
RobotHumans
47

En mi máquina, donde probablemente he jugado demasiado con archivos de arquitectura de 32 y 64 bits, resolví este problema instalando g++-multilib.

Ted Hahn
fuente
2

Sé que esta es una rama centrada en Ubuntu, pero esta página es la primera que apareció cuando busqué este error en Google (incluso cuando puse -Ubuntu en la búsqueda), así que voy a compartir mi respuesta para Arch Linux aquí:

En Arch, recibí una comprobación de fallos de / lib / cpp porque el paquete glibc estaba dañado y no tenía todos los encabezados / usr / include / sys. Resolví este error volviendo a compilar glibc.

thebunnyrules
fuente
55
Es curioso, resolví este problema hace un par de meses y lo olvidé por completo. Así que aquí estaba buscando una solución nuevamente. Gracias a Dios por este sitio. :)
thebunnyrules
Ese comentario :) Escuché que los sitios en Stack Exchange en general lo han hecho muchas veces antes
Paul Stelian,
2

Escribiendo el comando:

sudo apt-get --reinstall install libc6 libc6-dev

resuelve el problema.

usuario845225
fuente
1
Hola y bienvenidos a askubuntu! Utilice la guía de askubuntu.com/editing-help para formatear sus publicaciones.
abu_bua
Bienvenido a Ask Ubuntu! ;-) ¿Podría revisar mis ediciones y también la ayuda de edición para mejorar la legibilidad de sus respuestas en el futuro ... ;-) (CC @abu_bua)
Fabby