GCC construire problème (#include_next limites.h)
Quand j'essaie de
$ faire, tout dépend de la f gcc.mak
un middleware sur ma machine Ubuntu, je reçois ce
/usr/include/../include/limites.h:125:26: erreur: pas de chemin où chercher les limites.h
C'est le contenu autour des limites.h:125:
/* Obtenir le compilateur limites.h, qui définit presque tous les ISO constantes. Nous avons mis ce #include_next à l'extérieur de la double inclusion vérifier car il devrait être possible d'inclure ce fichier plus d'une fois et toujours obtenir les définitions de gcc-tête. */ #if defined __GNUC__ && !défini _GCC_LIMITS_H_ /* `_GCC_LIMITS_H_' est ce que GCC est défini dans le fichier. */ # include_next <limites.h> #endif
J'ai essayé de réglage
$ export INCLUDE=/usr/lib/gcc/x86_64-linux-gnu/4.3/include-fixe/ $ export C_INCLUDE_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.3/include-fixe/ $ export CPLUS_INCLUDE_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.3/include-fixe/
(qui est l'endroit où j'ai trouvé une autre limite.h sur mon système). J'ai déjà libc6-dev installé, se pourrait-il que ses limites.h a été remplacé par un autre paquet? Ai-je besoin d'un autre paquet-dev? Ou est une variable d'environnement requis; peut-être cela pourrait être contournée d'une autre façon?
Cela devrait fonctionner tel qu'il est. Que voyez-vous lorsque vous ajoutez "- v " pour votre compilation de commande?
Je suppose que les limites.h est manquant (ou écrasé). -v me GNU Make est de 3,81 Cible: x86_64-linux-gnu gcc version 4.3.3 (Ubuntu 4.3.3-5ubuntu4)
L'autre limite.h que vous pouvez trouver est celui qui devrait être tiré par include_next. Pouvez-vous ajouter -v de la gcc en ligne de commande qui ne l'échec de la compilation, c'est à dire gcc-v -c foo.c ? La partie la plus intéressante de sa sortie serait #include <...> recherche commence ici: /usr/local/include /usr/lib/gcc/x86_64-linux-gnu/4.3.3/include /usr/lib/gcc/x86_64-linux-gnu/4.3.3/include-fixe /usr/include Fin de la liste de recherche.
vous pouvez essayer de
Je suppose que les limites.h est manquant (ou écrasé). -v me GNU Make est de 3,81 Cible: x86_64-linux-gnu gcc version 4.3.3 (Ubuntu 4.3.3-5ubuntu4)
L'autre limite.h que vous pouvez trouver est celui qui devrait être tiré par include_next. Pouvez-vous ajouter -v de la gcc en ligne de commande qui ne l'échec de la compilation, c'est à dire gcc-v -c foo.c ? La partie la plus intéressante de sa sortie serait #include <...> recherche commence ici: /usr/local/include /usr/lib/gcc/x86_64-linux-gnu/4.3.3/include /usr/lib/gcc/x86_64-linux-gnu/4.3.3/include-fixe /usr/include Fin de la liste de recherche.
vous pouvez essayer de
export CPATH=$(env | grep _INC | cut -d= -f2 | paste -d: -s)
et export LIBRARY_PATH=$(env | grep _LIB | cut -d= -f2 | paste -d: -s)
OriginalL'auteur Jonas Byström | 2009-05-16
Vous devez vous connecter pour publier un commentaire.
le package que vous avez besoin est de la glibc.
J'ai de la glibc et toujours cette erreur.
Je suis en train de compiler pour android (donc pas de glibc comme tel) et j'obtiens cette erreur trop. Ne peut pas savoir ce en-tête, je devrais être compris.
ne marche toujours pas pour moi
OriginalL'auteur
J'avais fait face à mon problème avec la compilation avec STLport 5.1.5, mais il semble que le problème est résolu est STLport 5.2.0. Le problème est documenté dans STLport Notes De Version. Après l'obtention d'une copie de STLport 5.2.1, la compilation a réussi, sans hoquet.
OriginalL'auteur sudar
J'ai rencontré ce problème de faire un cross-compiler. Lorsque vous exécutez un "faire dépendre" le Makefile appeler le makedepend programme comme on le voit à partir de cette mission:
makedepend recherche par défaut, certaines inclure des répertoires de départ avec
/usr/include
Depuis le
#include_next
directive signifie que la prochaine trouvé instance de l'nommé d'inclure le fichier dans le chemin de recherche, ceci ne fonctionnera pas si un autre n'est pas trouvé.Pour moi, la solution a été de diriger makedepend à la recherche de mon cross-compilateur d'inclure des répertoires en premier. Je l'ai fait en modifiant le
MAKEDEPPROG
cession d'inclure le-I
directive:Je suggère la lecture sur la makedepend programme (dont je ne savais rien avant). Par exemple, il n'a pas été évident pour moi que makedepend ne voudrais pas utiliser un environnement de recherche de chemin. Le
-I
directive met le chemin de recherche spécifié avant makedepend de chemins d'accès par défaut.OriginalL'auteur JSAnderson
Envisager d'utiliser
#include_next <limits.h>
(gcc extension) dans le but de les forcer à gcc de regarder la prochaine trouvélimits.h
dans l'include path (qui doit être le jeu d'outils de copie).OriginalL'auteur ASk
Je n'ai pas exactement souviens de la résolution, mais elle avait à faire avec certains colis manquant. Après apt-obtenir quelques trucs, il a travaillé pour moi.
peut-être pour certains; pour moi, il aurait été plus utile pour trouver que je manque de paquets (que de penser qu'il y avait quelque chose de mal configuré mon système).
OriginalL'auteur Jonas Byström