фатальна помилка: sys / cdefs.h: Немає такого файлу чи каталогу |


108

Минуло кілька тижнів, коли я намагаюся використовувати Code :: Blocks IDE на Ubuntu 14.04 LTS для програми Atmega16, однак мене перешкоджає наступна помилка під час компіляції / побудови програми в C :: B

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

Я прочитав цю тему і, виходячи з цього, спробував очиститися libc6-devі зіткнувся з проблемою, усунувши залежності. З попереднього досвіду я знав, що існує велика ймовірність потрапити в розбиту трубну помилку. Я вирішив це, встановивши втрачені залежності.

Тепер у мене така ж помилка.


Відповіді:


154

Якщо ви перебуваєте у встановленні amd64, ви можете спробувати встановити пакет libc6-dev-i386. Це допомогло мені вирішити ту саму проблему, з якою ви стикалися, намагаючись зібрати smm з i8kutils.


9
Це спрацювало як шарм. Це має бути прийнятою відповіддю.
Патрик

14
Можливо, краще встановити gcc-multilib та g ++ - multilib.
RobotHumans

Встановлення libc6 та libc6-dev вирішило це для мене. Я також знайшов для нього якусь посилання, але, на жаль, я її втратив.
Mandar

4
libc6-dev-i386 - один із додаткових пакетів буде встановлений, якщо я запускаю sudo apt-get install g++-multilibKali 2016.2.
林果 皞

3
Якщо у вас багато ланцюгів інструментів компілятора, це може здатися помилкою в упаковці. Мультиліб отримує 32 та 64-бітових конструкторів, але, ймовірно, говорить щось нерозумно, як видалити всі інші ланцюжки інструментів, щоб спробувати запобігти конфліктам. Працював для мене, але у мене не було компіляторів для озброєння. Для цього я використовую VM.
RobotHumans

46

На моїй машині, де я, мабуть, занадто багато накрутив 32-ти та 64-бітні архітектурні файли, я вирішив цю проблему, встановивши g++-multilib.


2

Я знаю, що це гілка, орієнтована на Ubuntu, але ця сторінка перша, що з’явилася, коли я шукав цю помилку в Google (навіть коли я ставлю -Ubuntu в пошук), тому я буду ділитися своєю відповіддю для Arch linux тут:

В Arch я отримав / lib / cpp fail sanity check, тому що пакунок glibc був пошкодженим і не вистачало всіх заголовків / usr / include / sys. Я вирішив цю помилку шляхом повторної компіляції glibc.


5
Смішно, я вирішив цю проблему пару місяців тому і повністю забув про неї. Тому тут я знову шукав рішення. Слава богу за цей сайт. :)
thebunnyrules

Цей коментар :) Я чув, що сайти в Stack Exchange в цілому робили це багато разів раніше
Пол Стеліан

2

Введення команди:

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

вирішив проблему.


1
Привіт і Ласкаво просимо до Аскубунту! Будь ласка, використовуйте настанови askubuntu.com/editing-help для форматування своїх публікацій.
abu_bua

Ласкаво просимо до Ask Ubuntu! ;-) Чи можете ви, будь ласка, переглянути мої редагування, а також переглянути допомогу щодо редагування, щоб покращити читабельність ваших відповідей у ​​майбутньому ... ;-) (CC @abu_bua)
Fabby
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.