Recientemente actualicé de Kubuntu 12.04 a 13.04, una reinstalación completa.
Usando gcc 4.7.3. Compilé algunos programas para descubrir que no hay /usr/include/sys
directorio. Es decir, types.h
, stat.h
, etc, están ausentes. Existen en el include/linux
directorio pero no include/sys
.
¿Que esta pasando?
Respuestas:
Si usa Ubuntu en 64 bits (no puedo enviar mensajes de texto exactamente ahora en un sistema de 32 bits), entonces el directorio de la pregunta es:
Ahora, con esta información, puede crear enlaces simbólicos a esos archivos si realmente los necesita en esa ubicación (
/usr/include/sys
) usando esto en un terminal:fuente
instale libc6-dev-amd64 si está trabajando en un linux de 64 bits. Escriba el siguiente comando en la terminal de ubuntu:
fuente
el directorio sys es un directorio de cabecera del sistema unix / linux con muchos comandos del sistema. Diferentes marcas / versiones de Linux pueden ponerlo en diferentes lugares. El siguiente comando puede ayudarlo:
El primero es el hogar de los encabezados del sistema BSD unix.
El segundo es un directorio que contiene cabezas de sistema Linux de 64 bits.
Me encuentro con problemas con cmake no poder encontrar el archivo sys / stat.h. Mi solución temporal es hacer un enlace simbólico
No quiero contaminar el directorio / usr / include, y solo estoy haciendo un enlace a un archivo de encabezado en particular y no a todo el directorio sys. Creo que este es un defecto de cmake, por lo que tiene un impacto mínimo al hacer solo un enlace. Espero que esto pueda ayudar a aquellos que sufren el mismo problema.
fuente
Veamos cuál es la ruta de búsqueda de inclusión predeterminada de gcc. De esta respuesta , obtenemos este comando:
Al final de la salida, veo esto en mi máquina:
Observe la penúltima línea. Eso significa que cuando compila un archivo C
#include <sys/stat.h>
, gcc buscará/usr/include/x86_64-linux-gnu/sys/stat.h
antes de intentarlo/usr/include/sys/stat.h
, sin que tengamos que vincular nada.fuente
Como mi arquitectura es amd64, no la hay
libc6-dev-amd64
. El paquete para instalar eslibc6-dev-i386
.Eso solucionó la dependencia de un paquete CPAN.
fuente