GCC-3.4.1

Введение в GCC

Пакет GCC содержит GNU компиляторы. Они полезны для компилирования программ написанных на C, C++, Fortran, Java, Objective C и Ada.

Информация о пакете

Дополнительно

Зависимости GCC

Рекомендованные

Установка GCC

Если вы планируете компилировать Ada, то вам необходимо будет временно установить GNAT для удовлетворения зависимости при перекомпиляции GCC для включения Ada.

Информация о пакете

Зависимости GNAT

Требуемые

Tcsh-6.13.00

Установка GNAT

Установим GNAT запуском следующей команды:

./doconfig

Этот скрипт спросит вас о том, как и куда вы хотели бы установить GNAT. Для исключения конфликтов с системным gcc пакет будет установлен в отдельную директорию, которая позднее может быть удалена из системы.

В ответ на вопросы, заданные скриптом doconfig, введите 3 в ответ на первый вопрос и /opt/gnat в ответ на второй вопрос.

Для окончания установки запустите следующую команду под пользователем root:

./doinstall

Компилятор GNAT может быть вызван выполнением бинарника gcc, установленного приведенным выше скриптом.

Подготовимся к компиляции GCC размещением GNAT gcc в начале переменной PATH выполнением следующих команд:

PATH_HOLD=$PATH && export PATH=/opt/gnat/bin:$PATH

Возврат к установке GCC

Установим GCC запуском следующих команд:

[Important]

Важно

Процесс установки может переписать ваш имеющийся компилятор GCC и библиотеки. Очень рекомендуется наличие в системе установленных пакетов Tcl, Expect и DejaGnu, а так же распакованный тарбол с тестами GCC перед началом сборки.

Не выполняйте команду make install пока вы не убедитесь в успешности сборки. Вы можете сравнить ваши результаты тестов с результатами, находящимися на http://gcc.gnu.org/ml/gcc-testresults/. Представленые результаты тестов на платформе i686 для системы LFS-6.0 находятся на http://linuxfromscratch.org/~randy/gcc341_test.txt. Вы так же можете захотеть обратиться к информации, находящейся в разделе GCC-Шаг 2 Главы 5 в книге LFS ( ../../../../lfs/view/6.0/chapter05/gcc-pass2.html).

[Замечание]

Замечание

Некоторые из Java программ, установленные в пакете GCC, конфликтуют (имеют те же имена) с программами из пакета J2SDK-1.4.2. Если вы устанавливаете язык Java из пакета GCC но хотите использовать по умолчанию программы из J2SDK, убедитесь что $JAVA_HOME/bin указана перед /usr/bin в вашей переменной PATH.

patch -Np1 -i ../gcc-3.4.1-no_fixincludes-1.patch && patch -Np1 -i ../gcc-3.4.1-linkonce-1.patch && sed -i 's/install_to_$(INSTALL_DEST) //' libiberty/Makefile.in && mkdir ../gcc-build && cd ../gcc-build && ../gcc-3.4.1/configure --prefix=/usr --libexecdir=/usr/lib \ --enable-shared --enable-threads=posix --enable-__cxa_atexit \ --enable-clocale=gnu --enable-languages=c,c++,objc,f77,ada,java && make bootstrap && make -C gcc gnatlib-shared && make -C gcc gnattools && make -k check && ../gcc-3.4.1/contrib/test_summary

А теперь, как пользователь root:

make install && ln -v -sf ../usr/bin/cpp /lib && ln -v -sf gcc /usr/bin/cc && ln -v -sf g77 /usr/bin/f77 && chown -v -R root:root /usr/lib/gcc/i686-pc-linux-gnu/3.4.1/include && chown -v -R root:root /usr/lib/gcc/i686-pc-linux-gnu/3.4.1/ada{lib,include}

Вы можете удалить установку GNAT и восстановить ваш старый PATH:

rm -rf /opt/gnat && export PATH=$PATH_HOLD

Описание команд

sed -i 's/install_to_$(INSTALL_DEST) //' libiberty/Makefile.in: Эта команда заперщает установку libiberty.a, поскольку будет использоваться версия, предоставленная в Binutils.

mkdir ../gcc-build; cd ../gcc-build: Документация GCC рекомендует производить сборку пакета в отдельной директории.

--enable-shared --enable-threads=posix --enable-__cxa_atexit: Эти команды необходимы для сборки C++ библиотеки в опубликованных стандартах.

--enable-clocale=gnu: Эта команда служит для безопасности работы с неполными данными локалей.

--enable-languages=c,c++,objc,f77,ada,java: Эта команда определяет собираемые языки программирования. Вы можете исключить из нее ненужные языки.

make -C gcc gnatlib-shared: Эта команда собирает разделяемые и статические библиотеки Ada. Пропустите этот шаг, если вы не используете Ada в качестве одного из языков.

make -C gcc gnattools: Эта коанда собирает средства разработки и бинарники Ada. Пропустите этот шаг, если вы не используете Ada в качестве одного из языков.

make -k check: Эта команда запускает тест в режиме без остановки в случае обнаружения ошибок.

../gcc-3.4.1/contrib/test_summary: Эта команда предоставляет суммарный результат выполнения тестов. Вы можете добавить в команду | grep -A7 Summ для предоставления более сжатой версии результатов. Вы можете так же захотеть перенаправить вывод в файл для последующего просмотра и сравнения.

ln -sf ../usr/bin/cpp /lib: Эта команда создает ссылку на предпроцессор C, поскольку некоторые пакеты ожидают его установку в директории /lib.

ln -sf gcc /usr/bin/cc; ln -sf g77 /usr/bin/f77: Эти ссылки создаются, поскольку некоторые пакеты обращаются к компиляторам C и Fortran, используя альтернативные имена.

chown -R root:root /usr/lib/gcc/i686-pc-linux-gnu/...: Если пакет собран пользователем, отличным от root, то владелец установленных директорий include и adalib (и их содержимого) будет некорректным. Эти команды изменяют владельца на root:root. Пропустите команду, изменяющую директории Ada, если вы не включили Ada в список усанавливаемых языков.

Содержание

Установленные программы: addr2name.awk, cc, c++, cpp, f77, g++, g77, gcc, gccbug, gcj, gcjh, gcov, gij, gnat, gnatbind, gnatbl, gnatchop, gnatclean, gnatfind, gnatkr, gnatlink, gnatls, gnatmake, gnatname, gnatprep, gnatxref, gpr2make, gprcmd, grepjar, jar, jcf-dump, jv-convert, jv-scan, rmic, rmiregistry и архитектурно-зависимые имена для for c++, g++, gcc{,-3.4.1}, gcj и gcjh
Установленные библиотеки: lib-org-w3c-dom.[so,a], lib-org-xml-sax.[so,a], libffi-2.00-beta.so, libffi.[so,a], libfrtbegin.a, libg2c.[so,a], libgcc_s.so, libgcj.[so,a], libobjc.[so,a], libstdc++.[so.6,a], libsupc++.a и большое количество библиотек и исполняемых файлов в /usr/lib/gcc
Установленные директории: /usr/include/c++, /usr/include/gcj, /usr/include/gnu, /usr/include/java, /usr/include/javax, /usr/lib/gcc, /usr/lib/security, /usr/share/gnat и /usr/share/java

Короткое описание

Описаня некоторых программ и библиотек здесь не представлены, но они могут быть найдены в ../../../../lfs/view/6.0/chapter06/gcc.html#contents-gcc.

addr2name.awk

эмулирует некоторую функциональность addr2line.

f77

ссылка на g77, созданная в целях совместимости.

g77

компилятор Fortran, вызываемый из gcc.

gcj

первоначальный компилятор для языка Java.

gcjh

генерирует файлы заголовков из файлов Java классов.

gij

интерпретатор GNU для кода Java.

gnat

компилятор Ada, вызываемый из gcc.

gnatbind

используется для связывания скомпилированных объектов.

gnatbl

компоновщик Ada.

gnatchop

полезен для переименования файлов для соответствия стандартам соглашений именования файлов Ada.

gnatclean

используется для удаления файлов, связанных с проектом GNAT.

gnatfind

поисковик описаний/использования GNAT.

gnatlink

используется для компоновки программ и сборки исполняемого файла.

gnatls

компилированный браузер элементов.

gnatmake

автоматический make.

gnatname

перечисляет файлы, ассоциированные с проектом GNAT.

gnatprep

внешний предпроцессор GNAT.

gnatxref

GNAT создатель перекрестных ссылок.

gpr2make

средство, используемое для создания файлов Makefile, которые поддерживают компиляцию с различных языков.

gprcmd

утилита, используемая Makefile.generic для поддержки многоязыковых сборок. Она предоставляет набор команд, благодаря которым файлам Makefile не надо зависеть от Unix утилит, которые не доступны везде.

grepjar

ищет jar файлы по образцу.

jar

средство для работы с Java архивами.

jcf-dump

печатает информацию о файлах Java классов.

jv-convert

преобразует файлы из одной кодировки в другую.

jv-scan

печатает информацию об исходных файлах Java.

rmic

генерирует остатки для метода удаленного вызова.

rmiregistry

запускает регистрацию удаленного объекта на текущем хосте.

Последнее обновление 2005-02-28 13:39:06 -0700