¿Dónde está mi directorio /usr/include/sys?

¿Dónde está mi directorio /usr/include/sys?

Recientemente actualicé de Kubuntu 12.04 a 13.04, una reinstalación completa.

Usando gcc 4.7.3. Compilé algunos programas y descubrí que no hay ningún /usr/include/sysdirectorio. Es decir, types.h, stat.h, etc, están ausentes. Existen en el include/linuxdirectorio pero no include/sys.

¿Qué está sucediendo?

Respuesta1

Si usa Ubuntu en 64 bits (no puedo enviar mensajes de texto exactamente en este momento en un sistema de 32 bits), entonces el directorio de la pregunta es:

/usr/include/x86_64-linux-gnu/sys

Ahora, teniendo esta información, puedes crear enlaces simbólicos a esos archivos si realmente los necesitas en esa ubicación ( /usr/include/sys) usando esto en una terminal:

sudo ln -s /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/sys/types.h
sudo ln -s /usr/include/x86_64-linux-gnu/sys/stat.h /usr/include/sys/stat.h

# ...etc

Respuesta2

Instale libc6-dev-amd64 si está trabajando en un Linux de 64 bits. Escriba el siguiente comando en la terminal de Ubuntu:

sudo apt-get install libc6-dev-amd64

Respuesta3

Comprobemos cuál es la ruta de búsqueda de inclusión predeterminada de gcc. Deesta respuesta, obtenemos este comando:

gcc -xc -E -v -

Al final del resultado, veo esto en mi máquina:

ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"
ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../x86_64-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
 /usr/lib/gcc/x86_64-linux-gnu/4.8/include
 /usr/local/include
 /usr/lib/gcc/x86_64-linux-gnu/4.8/include-fixed
 /usr/include/x86_64-linux-gnu
 /usr/include

Observe la penúltima línea. Eso significa que cuando compilas un archivo C con #include <sys/stat.h>, gcc buscará /usr/include/x86_64-linux-gnu/sys/stat.hantes de intentarlo /usr/include/sys/stat.h, sin que tengamos que vincular nada.

Respuesta4

Como mi arquitectura es AMD64, no existe libc6-dev-amd64. El paquete a instalar es libc6-dev-i386.

Eso solucionó la dependencia de un paquete CPAN.

información relacionada