errore fatale: sys / cdefs.h: nessun file o directory |


108

Sono settimane che sto cercando di usare Code :: Blocks IDE su Ubuntu 14.04 LTS per programmare Atmega16, tuttavia sono ostacolato dal seguente errore durante la compilazione / creazione del programma in C :: B

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

Ho letto questo thread e in base a ciò ho cercato di eliminare libc6-deve ho riscontrato problemi rimuovendo le dipendenze. Dall'esperienza precedente sapevo che esiste un'enorme probabilità di incorrere in un errore del tubo rotto. L'ho affrontato installando le dipendenze perse.

Ora ho ancora lo stesso errore.


Risposte:


154

Se si utilizza un'installazione amd64, è possibile provare a installare il pacchetto libc6-dev-i386. Questo mi ha aiutato a risolvere lo stesso problema riscontrato durante il tentativo di compilare smm da i8kutils.


9
Questo ha funzionato come un fascino. Questa dovrebbe essere la risposta accettata.
Patryk,

14
Potrebbe essere meglio installare gcc-multilib e g ++ - multilib.
RobotHumans,

L'installazione di libc6 e libc6-dev ha risolto il problema per me. Ne avevo anche trovato qualche riferimento, ma purtroppo l'ho perso.
Mandar,

4
libc6-dev-i386 è uno dei pacchetti aggiuntivi che verranno installati se corro sudo apt-get install g++-multilibin Kali 2016.2.
林果 皞

3
Se hai molte toolchain di compilatore, sembrerebbe un bug di packaging. Quello multilib ti dà i costruttori a 32 e 64 bit, ma probabilmente dice qualcosa di stupido come rimuovere prima tutte le altre toolchain per cercare di prevenire i conflitti. Ha funzionato per me, ma non avevo compilatori per arm. Uso le VM per questo.
RobotHumans,

46

Sul mio computer, dove probabilmente ho rovinato troppo con i file di architettura a 32 e 64 bit, ho risolto questo problema installando g++-multilib.


2

So che questo è un ramo di Ubuntu incentrato su Ubuntu ma questa pagina è la prima che è venuta fuori quando ho cercato questo errore su Google (anche quando ho inserito -Ubuntu nella ricerca), quindi condividerò la mia risposta per Arch Linux qui:

In Arch, ho ricevuto un controllo di integrità / lib / fail perché il pacchetto glibc era corrotto e mancava tutte le intestazioni / usr / include / sys. Ho risolto questo errore ricompilando glibc.


5
Divertente, ho risolto questo problema un paio di mesi fa e me ne sono completamente dimenticato. Quindi qui stavo cercando di nuovo una soluzione. Grazie a Dio per questo sito. :)
thebunnyrules,

Quel commento :) Ho sentito che i siti di Stack Exchange in generale lo hanno già fatto molte volte prima
Paul Stelian,

2

Digitando il comando:

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

problema risolto.


1
Ciao e benvenuto su askubuntu! Utilizza le linee guida di askubuntu.com/editing-help per formattare i tuoi post.
abu_bua,

Benvenuti in Ask Ubuntu! ;-) Potresti per favore rivedere le mie modifiche e anche rivedere l' aiuto alla modifica per migliorare la leggibilità delle tue risposte in futuro ... ;-) (CC @abu_bua)
Fabby
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.