Проблема сборки GCC (#include next limits.ч)

когда я пытаюсь

$ make depend -f gcc.mak

промежуточное ПО на моей машине Ubuntu я получаю это

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

это содержимое вокруг пределов.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

Я

$ 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/

(где я нашел еще один предел.h в моей системе). У меня уже установлен libc6-dev, может быть, это его пределы.h был перезаписан другим пакетом? Нужен ли мне еще один пакет dev? Или требуется переменная среды; возможно, это может быть обойти каким-то другим способом?

5 ответов


пакет, который вам нужен, это glibc.


Я столкнулся с проблемой компиляции с STLport 5.1.5, но, похоже, проблема исправлена-STLport 5.2.0. Проблема задокументирована в STLport Заметки. После получения копии STLport 5.2.1 компиляция прошла успешно без икоты.


я столкнулся с этой проблемой делать кросс-компиляцию. Когда вы выполняете "Make depend", Makefile вызовет программу makedepend, как видно из этого назначения:

MAKEDEPPROG=makedepend

makedepend ищет только некоторые каталоги по умолчанию, начиная с /usr/include

С #include_next директива означает включение следующего найденного экземпляра именованного файла include в путь поиска, это приведет к сбою, если другой не найден.

для меня решение состояло в том, чтобы сначала направить makedepend для поиска моих кросс-компиляторов. Я сделал это, изменив MAKEDEPPROG назначение для включения


рассмотрите возможность использования #include_next <limits.h> (расширение gcc), чтобы заставить gcc посмотреть на следующий найденный limits.h в пути включения (который должен быть копией набора инструментов).


Я точно не помню разрешение больше, но это было связано с каким-то отсутствующим пакетом. После того, как apt-получил еще несколько вещей, это сработало для меня.