Intereting Posts
Мой компьютер не запрашивает пароль в Login, даже если я установил его для ASK при входе в систему Включение одного щелчка для открытия элементов в Nautilus Как я могу подсчитать количество спальных процессов в моей системе? Невозможно использовать «./» для выполнения сценария оболочки nvidia глюки при прокрутке: видимые треугольники Установка glib дает «У вас должна быть поддержка gettext» Почему моя беспроводная сеть перестает работать в Ubuntu, если я отключу ее в Windows? Перезагрузка страницы веб-браузера терминала Как удалить Kernel 3.1, который я добавил через PPA? Как увидеть доступные команды, которые заканчиваются определенной строкой? Как удалить слова из txt-файла, который существует в другом txt-файле? Текстовый редактор для обработки чрезвычайно больших файлов Как обновить пакеты Ubuntu от источника? Как узнать, какая версия SDL у меня на моем ubuntu Беспроводная сеть не может быть включена для Sony VAIO E series

Невозможно собрать gcc больше с момента обновления до 11.10

В понедельник я обновился до Ubuntu 11.04 (моя первоначальная установка) до 11.10, и теперь я больше не могу строить gcc из исходного кода. Поскольку я забыл удалить пакет gcc перед обновлением, Ubuntu заменил мой компилятор 4.7.0 с его стабильной версией 4.6.1. Поэтому я попытался снова создать источники SVN, но это не удается. Я недавно попробовал это с SVN-версией 180193.

Через некоторое время сборка завершится неудачей со следующим сообщением:

/home/raphael/devel/gcc/build/./gcc/xgcc -B/home/raphael/devel/gcc/build/./gcc/ -B/usr/i686-pc-linux-gnu/bin/ -B/usr/i686-pc-linux-gnu/lib/ -isystem /usr/i686-pc-linux-gnu/include -isystem /usr/i686-pc-linux-gnu/sys-include -g -O2 -O2 -I. -I. -I../../src/gcc -I../../src/gcc/. -I../../src/gcc/../include -I../../src/gcc/../libdecnumber -I../../src/gcc/../libdecnumber/bid -I../libdecnumber -I../../src/gcc/../libgcc -g -O2 -DIN_GCC -W -Wall -Wwrite-strings -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem ./include -fPIC -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -fbuilding-libgcc -fno-stack-protector -I. -I. -I../.././gcc -I../../../src/libgcc -I../../../src/libgcc/. -I../../../src/libgcc/../gcc -I../../../src/libgcc/../include -I../../../src/libgcc/config/libbid -DENABLE_DECIMAL_BID_FORMAT -DHAVE_CC_TLS -DUSE_TLS -o _ashldi3.o -MT _ashldi3.o -MD -MP -MF _ashldi3.dep -DL_ashldi3 -c ../../../src/libgcc/../gcc/libgcc2.c \ -fvisibility=hidden -DHIDE_EXPORTS In file included from /usr/include/stdio.h:28:0, from ../../../src/libgcc/../gcc/tsystem.h:88, from ../../../src/libgcc/../gcc/libgcc2.c:29: /usr/include/features.h:323:26: fatal error: bits/predefs.h: File or directory not found. 

Я сфокусировал это на:

 ~/devel/gcc/build$ ../src/configure --prefix=/usr --enable-languages=c++ 

И сделайте это с:

 ~/devel/gcc/build$ make -j4 

Чтобы быть уверенным, я сделал rm -rf * в каталоге сборки, если в нем есть некоторые сломанные вещи. Не помогло.


Это предыстория. Я попытался исправить это и искал bits/predefs.h . Он находится внутри /usr/include/i386-linux-gnu . Я временно исправил проблему, выполнив

 ~/devel/gcc/build$ C_INCLUDE_PATH=/usr/include/i386-linux-gnu make -j4 

Это временно, потому что теперь gcc жалуется, что не может найти crti.o

Который я могу найти в /usr/lib/i386-linux-gnu . Теперь я также C_LIBRARY_PATH установить C_LIBRARY_PATH – на самом деле это не сработало – но я чувствую, что я борюсь с системой здесь. Кроме того, даже если это удастся, мой недавно созданный компилятор также не знал бы о i386-linux-gnu . Поэтому я должен был бы установить C_LIBRARY_PATH и C_INCLUDE_PATH перед каждой сборкой каждого проекта, который у меня есть. Я мог бы добавить его в мой .bashrc, но это еще больше подрывает систему.

Итак, как мне сказать процесс сборки:

  • Что есть дополнительные include / lib каталоги, и
  • Что он должен построить gcc, который их уважает?

Изменить: я забыл включить команду, которая вызывает указанное выше сообщение об ошибке. Также я могу подумать о другом решении: скопируйте материал из /usr/include/i386-linux-gnu в /usr/include (то же самое для /usr/lib/i386-linux-gnu в /usr/lib ). Но это тоже не так. Наконец, gcc 4.6.1 системы может скомпилировать другие приложения просто отлично, кроме моих, которые используют функции C ++ 11, не присутствующие в серии 4.6.