Kiedy próbujęGCC build problemem (#include_next limits.h)
$ make depend -f gcc.mak
middleware na moim komputerze Ubuntu mam ten
/usr/include/../include/limits.h:125:26: error: no include path in which to search for limits.h
To jest zawartość około 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
Próbowałem ustawienie
$ 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/
(gdzie znalazłem kolejny limit.h w moim systemie). Mam już zainstalowany libc6-dev, czy to możliwe, że jego limit.h został nadpisany przez inny pakiet? Czy potrzebuję innego pakietu -dev? Lub jest wymagana zmienna środowiskowa; może to można obejść w jakiś inny sposób?
To powinno działać tak, jak jest. Co widzisz po dodaniu "-v" do polecenia kompilacji? –
Zgaduję, że limit.h brakuje (lub jest nadpisany). -v dostaje mnie GNU Make 3.81 Target: x86_64-linux-gnu gcc wersja 4.3.3 (Ubuntu 4.3.3-5ubuntu4) –
Kolejna granica.h, którą możesz znaleźć, to ta, która powinna zostać wciągnięta przez include_next . Czy można dodać opcję -v do wiersza polecenia gcc, który wykonuje kompilację, która nie działa, tj. Gcc -v -c foo.c? Co ciekawe w jego wyjściu będzie #include <...> wyszukiwania zaczyna się tutaj: /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-fix /usr/include Koniec listy wyszukiwania. –