Baru-baru ini saya memutakhirkan dari Kubuntu 12.04 ke 13.04, instal ulang lengkap.
Menggunakan gcc 4.7.3. Saya mengkompilasi beberapa program untuk menemukan tidak ada /usr/include/sys
direktori. Artinya, types.h
, stat.h
, dll, yang absen. Mereka ada di include/linux
direktori tetapi tidak include/sys
.
Apa yang sedang terjadi?
Jawaban:
Jika Anda menggunakan Ubuntu pada 64-bit (Saya tidak bisa mengirim pesan teks sekarang di sistem 32-bit), maka direktori dari pertanyaan tersebut adalah:
Sekarang, dengan memiliki informasi ini, Anda dapat membuat tautan simbolis ke file-file tersebut jika Anda benar-benar membutuhkannya di lokasi itu (
/usr/include/sys
) menggunakan ini di terminal:sumber
instal libc6-dev-amd64 jika Anda bekerja pada linux 64-bit. Ketikkan perintah berikut di terminal ubuntu:
sumber
direktori sys adalah direktori header sistem unix / linux dengan banyak perintah sistem. Berbagai merek / versi linux dapat meletakkannya di tempat yang berbeda. Perintah berikut dapat membantu Anda:
Yang pertama adalah rumah bagi header sistem BSD unix.
Yang kedua adalah direktori yang berisi kepala sistem Linux 64 bit.
Saya mengalami masalah dengan cmake tidak dapat menemukan file sys / stat.h. Solusi sementara saya adalah membuat tautan simbolik
Saya tidak ingin mencemari direktori / usr / include, dan saya hanya membuat tautan ke satu file header tertentu dan bukan seluruh direktori sys. Saya pikir ini adalah cacat cmake, jadi buat dampak minimal dengan hanya membuat satu tautan. Semoga ini bisa membantu mereka yang menderita masalah yang sama.
sumber
Mari kita periksa apa default gcc termasuk jalur pencarian. Dari jawaban ini , kita mendapatkan perintah ini:
Di akhir output, saya melihat ini di mesin saya:
Perhatikan baris kedua hingga terakhir. Itu berarti bahwa ketika Anda mengompilasi file C
#include <sys/stat.h>
, gcc akan mencari/usr/include/x86_64-linux-gnu/sys/stat.h
sebelum mencoba/usr/include/sys/stat.h
, tanpa kita harus symlink apa pun.sumber
Karena arsitektur saya adalah amd64, tidak ada
libc6-dev-amd64
. Paket untuk menginstal adalahlibc6-dev-i386
.Itu memperbaiki ketergantungan untuk paket CPAN.
sumber