Wenn ich versucheGCC Build-Problem (#include_next limits.h)
$ make depend -f gcc.mak
eine Middleware auf meinem Ubuntu-Rechner bekomme ich diesen
/usr/include/../include/limits.h:125:26: error: no include path in which to search for limits.h
Dies ist der Inhalt um 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
ich habe versucht Einstellung
$ 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/
(wo ich eine andere limits.h auf meinem System gefunden habe). Ich habe bereits libc6-dev installiert, könnte es sein, dass limits.h von einem anderen Paket überschrieben wurde? Brauche ich ein anderes -dev-Paket? Oder ist eine Umgebungsvariable erforderlich? vielleicht könnte das auf andere Weise umgangen werden?
Dies sollte so funktionieren wie es ist. Was siehst du, wenn du '-v' zu deinem Kompilierbefehl hinzufügst? –
Ich vermute, dass limits.h fehlt (oder überschrieben). -v bekommt mich GNU Make 3.81 Ziel: x86_64-linux-gnu gcc-version 4.3.3 (Ubuntu 4.3.3-5ubuntu4) –
Die andere limits.h, die Sie finden können, ist derjenige, der von Include_next gezogen werden sollte . Können Sie der Befehlszeile von gcc, die die fehlerhafte Kompilierung ausführt, -v hinzufügen, d. H. Gcc -v -c foo.c? Der interessante Teil hier in seiner Ausgabe beginnt # include <...> Suche wäre: /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-fixed /usr/include Ende der Suchliste. –