Pregunta

Cuando intento

$ make depend -f gcc.mak

un middleware en mi máquina Ubuntu consigo este

/usr/include/../include/limits.h:125:26: error: no include path in which to search for limits.h

Este es el contenido de todo limits.h: 125:

/* Get the compiler's limits.h, which defines almost all the ISO constants.

    We put this #include_next outside the double inclusion check because
    it should be possible to include this file more than once and still get
    the definitions from gcc's header.  */
#if defined __GNUC__ && !defined _GCC_LIMITS_H_
/* `_GCC_LIMITS_H_' is what GCC's file defines.  */
# include_next <limits.h>
#endif

He intentado establecer

$ export INCLUDE=/usr/lib/gcc/x86_64-linux-gnu/4.3/include-fixed/
$ export C_INCLUDE_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.3/include-fixed/
$ export CPLUS_INCLUDE_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.3/include-fixed/

(que es donde he encontrado otra limits.h en mi sistema). Ya tengo instalado libc6-dev, podría ser que su limits.h ha sido sobrescrito por otro paquete? ¿Es necesario otro paquete -dev? O es una variable de entorno requerida; Tal vez esto podría ser evitado de alguna otra manera?

¿Fue útil?

Solución

el paquete que se necesita es glibc.

Otros consejos

Me había enfrentado a mi problema con la compilación con STLport 5.1.5, pero parece que el problema se soluciona es STLport 5.2.0. El problema se documenta en la versión STLport Notas . Después de conseguir una copia de STLport 5.2.1, la compilación fue exitosa y sin contratiempos.

Me he encontrado con este problema en hacer una compilación cruzada. Cuando se ejecuta un 'make depend' Makefile invocará el programa makedepend como se ve desde esta asignación:

MAKEDEPPROG=makedepend

makedepend sólo se busca en algún incumplimiento directorios de inclusión a partir de /usr/include

Dado que la Directiva #include_next significa incluir la siguiente encontrado instancia de la llamada archivo de inclusión en la ruta de búsqueda, se producirá un error si no se encuentra otro.

Para mí, la solución era dirigir makedepend a buscar mi compilador cruzado incluye directorios en primer lugar. Hice esto cambiando el MAKEDEPPROG asignación para incluir la directiva -I:

MAKEDEPPROG=makedepend -I < path/to/cross-compiler/include-fixed >

Le sugiero leer sobre el programa makedepend (de la que no sabía nada antes). Por ejemplo, no era obvio para mí que makedepend no utilizar una ruta de búsqueda medio ambiente. El <=> Directiva pone la ruta de búsqueda especificado antes de rutas predeterminadas de makedepend.

Considere el uso de #include_next <limits.h> (extensión gcc) con el fin de obligar a gcc que mirar el lado limits.h encontrado en la ruta de inclusión (que debe ser la copia del conjunto de herramientas).

No recuerdo exactamente con la resolución más, pero tenía que ver con algún paquete que falta. Después de apt-conseguir algunas cosas más, que trabajó para mí.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top