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

После просмотра информации, единственное, что меня поразило, это то, что если вы используете проводное соединение, вы должны отключить беспроводную связь. Когда вы используете оба соединения с одним и тем же маршрутизатором, система запутывается.

Если вы не используете беспроводную связь, когда вы подключены с помощью проводного соединения, вы должны быть в порядке.

5
задан 11 November 2011 в 02:56

4 ответа

Применить этот патч и настроить с помощью --enable-multiarch (не путать с multilib):

http://gcc.gnu.org/ml/gcc-patches/2011-08 /msg01674.html

(Это заменяет предыдущий патч.)

2
ответ дан 25 May 2018 в 17:52
  • 1
    И, если вам не нравится исправлять ваши источники, а флаги установки не работают для вас, просто софт-ссылка crt * .o в / usr / lib dirctory (вы найдете их в / usr / lib / i386-linux-gnu или / usr / lib / x86_64-linux-gnu). – ams 15 November 2011 в 20:55
  • 2
    Я использую Debian сейчас, поэтому я не могу проверить, работает ли он, но он выглядит нормально, поэтому я его принимаю. – Raphael R. 6 December 2011 в 21:27

Еще один материал:

http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=644986

Вместо того, чтобы использовать весь скрипт, ключевая часть кажется:

make FLAGS_FOR_TARGET="-B/usr/lib/i386-linux-gnu -I/usr/include/i386-linux-gnu"

Результат не совсем чист, потому что по-прежнему нужен сценарий оболочки после установки, чтобы выполнить с помощью дополнительных дополнительных опций. Например, вот пример из статьи /usr/bin/gcc-4.7:

#!/bin/sh

exec /opt/gcc-4.7/bin/gcc-4.7 -B/usr/lib/i386-linux-gnu -I/usr/include/i386-linux-gnu "$@"
2
ответ дан 25 May 2018 в 17:52

Ubuntu 11.10 предоставляет многоадресную поддержку, что означает, что вы не должны помещать файлы библиотеки в /usr/lib, но /usr/lib/i386-linux-gnu (32-разрядные) или /usr/lib/x86_64-linux-gnu (64-разрядные).

Используйте что-то вроде:

CFLAGS=-I/usr/include/i386-linux-gnu ./configure [options]

Возможно, вам также нужно указать LDFLAGS=-L/usr/lib/i386-linux-gnu.

Кроме того, ваши пути не выглядят красиво: /usr/i686-pc-linux-gnu/lib/, вы можете использовать опции как --libdir, чтобы исправить это.

1
ответ дан 25 May 2018 в 17:52
  • 1
    Фактически это было добавлено в 11.04, но 11.10 было, когда все было завершено. – jrg♦ 20 October 2011 в 00:09
  • 2
    Хммм. CFLAGS работает, но если я устанавливаю LDFLAGS, он все равно не может найти crti.o. Кроме того, LDFLAGS не отображаются в команде, которая связывает libgcc_s.so. Затем я добавил -L / usr / lib / i386-linux-gnu в CFLAGS. Теперь он появляется в команде, но STILL его не может найти. Я дважды проверил путь. Похоже, что gcc не ищет пути -L при поиске .o-файлов. – Raphael R. 20 October 2011 в 00:16
  • 3
    Тогда у меня нет идей. Возможно, это скрипты, используемые для создания gcc на Ubuntu, показывают, что вам нужно (apt-get source --diff-only gcc, а затем запустите tar xf ..., если это tarball и patch -p0 < ..., если это файл diff) – Lekensteyn 20 October 2011 в 00:27

С вашего здания из SVN, вы уверены, что ваше здание из той же версии? AKA, убедитесь, что проблема не выше: -)

1
ответ дан 25 May 2018 в 17:52
  • 1
    Скорее всего, мы не строим из того же пересмотра. Мы не можем найти разумные параметры ./configure command-options, чтобы завершить сборку с новым многоуровневым расположением Debian / Ubuntu. – mirk 12 November 2011 в 14:36

Другие вопросы по тегам:

Похожие вопросы: