erro fatal: sys / cdefs.h: Esse arquivo ou diretório não existe |

108

Faz semanas que estou tentando usar o IDE Code :: Blocks no Ubuntu 14.04 LTS para programar o Atmega16, no entanto, sou impedido pelo seguinte erro ao compilar / criar o programa em C :: B

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

Eu li esse tópico e, com base nisso, tentei limpar libc6-deve tive problemas ao remover as dependências. Por experiência anterior, eu sabia que havia uma enorme probabilidade de ocorrer um erro no tubo quebrado. Eu o resolvi instalando as dependências perdidas.

Agora ainda tenho o mesmo erro.

Mandar
fonte
1
Possível duplicata de Como encontro o pacote que fornece um arquivo?
David Foerster

Respostas:

154

Se você estiver em uma instalação amd64, poderá tentar instalar o pacote libc6-dev-i386. Isso me ajudou a resolver o mesmo problema que você encontrou ao tentar compilar o smm do i8kutils.

zerwas
fonte
9
Isso funcionou como um encanto. Essa deve ser a resposta aceita.
Patryk 31/07
14
Pode ser melhor instalar o gcc-multilib e o g ++ - multilib.
RobotHumans
A instalação do libc6 e libc6-dev resolveu isso para mim. Eu também tinha encontrado alguma referência para isso, mas infelizmente eu a perdi.
21415 Mandar
4
libc6-dev-i386 é um dos pacotes adicionais que serão instalados se eu executar sudo apt-get install g++-multilibno Kali 2016.2.
12166
3
Se você tiver muitas cadeias de ferramentas do compilador, isso pareceria um erro de empacotamento. O multilib oferece a você construtores de 32 e 64 bits, mas provavelmente diz algo tolo como remover todas as outras cadeias de ferramentas primeiro para tentar evitar conflitos. Trabalhou para mim, mas eu não tinha compiladores para o braço. Eu uso VMs para isso.
RobotHumans
46

Na minha máquina, onde provavelmente já me atrapalhei demais com os arquivos de arquitetura de 32 e 64 bits, resolvi esse problema instalando g++-multilib.

Ted Hahn
fonte
2

Eu sei que este é um ramo centralizado no Ubuntu, mas esta página é a primeira que surgiu quando eu pesquisei esse erro no Google (mesmo quando eu coloquei -Ubuntu na pesquisa), então vou compartilhar minha resposta para o Arch linux aqui:

No Arch, recebi uma verificação de sanidade / lib / cpp fail porque o glibc do pacote estava corrompido e faltando todos os cabeçalhos / usr / include / sys. Resolvi esse erro recombinando o glibc.

thebunnyrules
fonte
5
Engraçado, resolvi esse problema há alguns meses e esqueci completamente. Então, aqui estava eu ​​procurando uma solução novamente. Graças a Deus por este site. :)
thebunnyrules
Esse comentário :) Ouvi dizer que sites em Stack Troca geral ter feito isso muitas vezes antes
Paul Stelian
2

Digitando o comando:

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

resolveu o problema.

user845225
fonte
1
Olá e bem-vindo ao askubuntu! Por favor, use a diretriz de askubuntu.com/editing-help para formatar suas postagens.
abu_bua
Bem-vindo ao Ask Ubuntu! ;-) Você poderia por favor rever minhas edições e também rever a ajuda edição para melhorar a legibilidade de suas respostas no futuro ... ;-) (CC @abu_bua)
Fabby