kesalahan fatal: sys / cdefs.h: Tidak ada file atau direktori |

108

Sudah berminggu-minggu saya mencoba menggunakan Code :: Blocks IDE pada Ubuntu 14.04 LTS untuk memprogram Atmega16, namun saya terhalang oleh kesalahan berikut saat mengkompilasi / membangun program di C :: B

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

Saya telah membaca utas ini dan berdasarkan itu saya telah mencoba untuk membersihkan libc6-devdan mengalami masalah dengan menghapus dependensi. Dari pengalaman sebelumnya saya tahu bahwa ada kemungkinan besar untuk masuk ke kesalahan pipa rusak. Saya mengatasinya dengan menginstal dependensi yang hilang.

Sekarang saya masih memiliki kesalahan yang sama.

Mandar
sumber
1
Kemungkinan duplikat dari Bagaimana saya menemukan paket yang menyediakan file?
David Foerster

Jawaban:

154

Jika Anda sedang menginstal amd64, Anda dapat mencoba menginstal paket libc6-dev-i386. Ini membantu saya memecahkan masalah yang sama yang Anda temui ketika mencoba mengkompilasi smm dari i8kutils.

nol
sumber
9
Ini bekerja seperti pesona. Ini harus menjadi jawaban yang diterima.
Patryk
14
Mungkin lebih baik untuk menginstal gcc-multilib dan g ++ - multilib.
RobotHumans
Menginstal libc6 dan libc6-dev memecahkannya untuk saya. Saya juga menemukan beberapa referensi untuk itu, tetapi sayangnya saya kehilangan itu.
Mandar
4
libc6-dev-i386 adalah salah satu paket tambahan yang akan diinstal jika saya jalankan sudo apt-get install g++-multilibdi Kali 2016.2.
林果 皞
3
Jika Anda memiliki banyak kumpulan alat penyusun, itu akan tampak seperti bug pengemasan. Multilib yang memberi Anda 32 dan 64 bit builder, tetapi mungkin mengatakan sesuatu yang konyol seperti menghapus semua toolchain lain terlebih dahulu untuk mencoba dan mencegah konflik. Bekerja untuk saya, tetapi saya tidak memiliki kompiler untuk lengan. Saya menggunakan VM untuk itu.
RobotHumans
46

Di komputer saya, di mana saya mungkin terlalu banyak memutar dengan file arsitektur 32 dan 64 bit, saya menyelesaikan masalah ini dengan menginstal g++-multilib.

Ted Hahn
sumber
2

Saya tahu ini adalah cabang Ubuntu-sentris tetapi halaman ini adalah yang pertama yang muncul ketika saya mencari kesalahan ini di Google (bahkan ketika saya memasukkan -Ubuntu dalam pencarian), jadi saya akan membagikan jawaban saya untuk Arch linux di sini:

Di Arch, saya mendapatkan cek sanity gagal / lib / cpp karena paket glibc rusak dan melewatkan semua header / usr / include / sys. Saya mengatasi kesalahan ini dengan mengkompilasi ulang glibc.

aturan kebun
sumber
5
Lucu, saya menyelesaikan masalah ini beberapa bulan yang lalu dan saya benar-benar lupa. Jadi di sini saya mencari solusi lagi. Terima kasih Tuhan untuk situs ini. :)
thebunnyrules
Komentar itu :) Saya telah mendengar bahwa situs-situs di Stack Exchange secara keseluruhan telah melakukan ini berkali-kali sebelumnya
Paul Stelian
2

Mengetik perintah:

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

memecahkan masalah.

pengguna845225
sumber
1
Hai dan selamat datang di askubuntu! Silakan gunakan pedoman askubuntu.com/editing-help untuk memformat posting Anda.
abu_bua
Selamat Datang di Tanya Ubuntu! ;-) Bisakah Anda meninjau suntingan saya dan juga meninjau bantuan pengeditan untuk meningkatkan keterbacaan jawaban Anda di masa depan ... ;-) (CC @abu_bua)
Fabby