błąd krytyczny: sys / cdefs.h: Brak takiego pliku lub katalogu |


108

Minęły tygodnie, kiedy próbuję używać Code :: Blocks IDE na Ubuntu 14.04 LTS do programowania Atmega16, jednak przeszkadza mi następujący błąd podczas kompilacji / kompilacji programu w C :: B

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

Przeczytałem ten wątek i na tej podstawie próbowałem oczyścić libc6-devi napotkałem problemy, usuwając zależności. Z poprzednich doświadczeń wiedziałem, że istnieje duże prawdopodobieństwo, że popełnisz błąd zepsutej rury. Rozwiązałem to, instalując utracone zależności.

Teraz nadal mam ten sam błąd.


Odpowiedzi:


154

Jeśli korzystasz z instalacji amd64, możesz spróbować zainstalować pakiet libc6-dev-i386. Pomogło mi to rozwiązać ten sam problem, który napotkałeś podczas próby skompilowania smm z i8kutils.


9
To działało jak urok. To powinna być zaakceptowana odpowiedź.
Patryk

14
Lepiej zainstalować gcc-multilib i g ++ - multilib.
RobotHumans

Zainstalowanie libc6 i libc6-dev rozwiązało to dla mnie. Znalazłem też jakieś referencje, ale niestety zgubiłem to.
Mandar,

4
libc6-dev-i386 to jeden z dodatkowych pakietów, które zostaną zainstalowane, jeśli uruchomię sudo apt-get install g++-multilibw Kali 2016.2.
林果 皞

3
Jeśli masz wiele łańcuchów narzędzi kompilatora, wygląda to na błąd w pakowaniu. Multilib jeden daje ci 32 i 64-bitowe konstruktory, ale prawdopodobnie mówi coś głupiego, jak najpierw usuń wszystkie inne łańcuchy narzędzi, aby spróbować uniknąć konfliktów. Pracował dla mnie, ale nie miałem kompilatorów do uzbrojenia. Używam do tego maszyn wirtualnych.
RobotHumans

46

Na moim komputerze, gdzie prawdopodobnie zbyt wiele zepsułem z plikami architektury 32- i 64-bitowej, rozwiązałem ten problem, instalując g++-multilib.


2

Wiem, że jest to gałąź skoncentrowana na Ubuntu, ale ta strona jest pierwszą, która pojawiła się, gdy przeszukałem ten błąd w Google (nawet gdy wstawiłem -Ubuntu w wyszukiwaniu), więc podzielę się swoją odpowiedzią na Arch linux tutaj:

W Arch otrzymałem kontrolę poprawności błędów / lib / cpp, ponieważ pakiet glibc był uszkodzony i brakowało wszystkich nagłówków / usr / include / sys. Rozwiązałem ten błąd, ponownie kompilując glibc.


5
Zabawne, rozwiązałem ten problem kilka miesięcy temu i zupełnie o nim zapomniałem. Więc tutaj znów szukałem rozwiązania. Bogu dzięki za tę stronę. :)
thebunnyrules

Ten komentarz :) Słyszałem, że strony w Stack Exchange ogólnie robiły to już wiele razy
Paul Stelian

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.