erreur fatale: sys / cdefs.h: Aucun fichier ou répertoire de ce type |

109

Cela fait des semaines que j'essaie d'utiliser Code :: Blocks IDE sur Ubuntu 14.04 LTS pour programmer Atmega16, cependant l'erreur suivante me gêne lors de la compilation / construction du programme en C :: B

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

J'ai lu ce fil et sur cette base, j'ai essayé de le purger libc6-devet j'ai eu des problèmes en supprimant les dépendances. De l'expérience précédente, j'ai su qu'il y avait une énorme probabilité d'entrer dans une erreur de conduite cassée. Je l'ai abordé en installant les dépendances perdues.

Maintenant, j'ai toujours la même erreur.

Mandar
la source
1
Double possible de Comment trouver le paquet qui fournit un fichier?
David Foerster

Réponses:

154

Si vous êtes sur une installation amd64, vous pouvez essayer d'installer le paquet libc6-dev-i386. Cela m'a aidé à résoudre le même problème que vous avez rencontré lors de la compilation de smm à partir de i8kutils.

Zerwas
la source
9
Cela a fonctionné comme un charme. Cela devrait être la réponse acceptée.
Patryk
14
Peut-être serait-il préférable d'installer gcc-multilib et g ++ - multilib.
RobotHumans
L'installation de libc6 et de libc6-dev l'a résolu pour moi. J'avais aussi trouvé des références, mais malheureusement, je les ai perdues.
Mandar
4
libc6-dev-i386 est l'un des paquetages supplémentaires qui seront installés si je suis lancé sudo apt-get install g++-multilibdans Kali 2016.2.
林果皞
3
Si vous avez plusieurs chaînes d'outils de compilation, cela ressemblerait à un bogue d'emballage. Le multilib on vous amène les constructeurs 32 et 64 bits, mais dit probablement quelque chose de stupide comme supprimer toutes les autres chaînes d'outils en premier pour essayer d'éviter les conflits. Travaillé pour moi, mais je n'avais pas de compilateur pour bras. J'utilise des machines virtuelles pour cela.
RobotHumans
47

Sur ma machine, où j'ai probablement trop bricolé avec des fichiers d'architecture 32 et 64 bits, j'ai résolu ce problème en installant g++-multilib.

Ted Hahn
la source
2

Je sais que c'est une branche centrée sur Ubuntu, mais cette page est la première à apparaître lorsque j'ai recherché cette erreur sur Google (même lorsque j'ai mis -Ubuntu dans la recherche), je vais donc partager ma réponse pour Arch linux ici:

Dans Arch, j’ai reçu une vérification d’échec pour / lib / cpp car le paquet glibc était corrompu et manquait de tous les en-têtes / usr / include / sys. J'ai résolu cette erreur en répétant la glibc.

thebunnyrules
la source
5
C'est drôle, j'ai résolu ce problème il y a quelques mois et je l'ai complètement oublié. Donc, ici, je cherchais à nouveau une solution. Merci mon Dieu pour ce site. :)
thebunnyrules
Ce commentaire :) J'ai entendu dire que les sites de Stack Exchange dans leur ensemble l'avaient déjà fait maintes fois auparavant
Paul Stelian
2

Taper la commande:

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

résolu le problème.

utilisateur845225
la source
1
Bonjour et bienvenue sur askubuntu! Veuillez utiliser le guide de askubuntu.com/editing-help pour formater vos messages.
Abu_bua
Bienvenue sur Ask Ubuntu! ;-) Pourriez-vous s'il vous plaît examiner mes modifications et revoir l' aide à la modification pour améliorer la lisibilité de vos réponses à l'avenir ... ;-) (CC @abu_bua)
Fabby