| |
GDB поставляется вместе со сценарием configure
, который
автоматизирует процесс подготовки GDB к установке; затем вы можете
использовать make
для построения программы gdb
.
(20)
Дистрибутив GDB включает весь исходный код, который вам понадобится для GDB, в одном каталоге, имя которого обычно составляется добавлением номера версии к `gdb'.
Например, дистрибутив GDB версии 5.0 находится в каталоге `gdb-5.0'. Этот каталог содержит:
gdb-5.0/configure (и файлы поддержки)
gdb-5.0/gdb
gdb-5.0/bfd
gdb-5.0/include
gdb-5.0/libiberty
gdb-5.0/opcodes
gdb-5.0/readline
gdb-5.0/glob
gdb-5.0/mmalloc
Простейший способ сконфигурировать и собрать GDB состоит в
выполнении configure
из исходного каталога
`gdb-номер-версии', который в этом примере есть
`gdb-5.0'.
Сперва перейдите в исходный каталог `gdb-номер-версии', если вы
еще не находитесь в нем; затем запустите configure
. Передайте в
качестве аргумента идентификатор платформы, на которой будет выполняться
GDB.
Например:
cd gdb-5.0 ./configure платформа make
где платформа---идентификатор, такой как `sun4' или
`decstation', задающий платформу, на которой будет выполняться
GDB. (Часто вы
можете опустить платформу; configure
пытается определить
корректное значение, изучая вашу систему.)
Выполнение `configure платформа' и затем make
строят
библиотеки `bfd', `readline', `mmalloc' и
`libiberty', и затем сам gdb
. Сконфигурированные исходные
файлы, а также двоичные файлы, остаются в соответствующих исходных каталогах.
configure
является сценарием оболочки Bourne (/bin/sh
); если
ваша система не распознает это автоматически, когда вы находитесь в
другой оболочке, вам может потребоваться выполнить sh
явно:
sh configure платформа
Если вы выполните configure
из каталога, содержащего исходные
каталоги для нескольких библиотек или программ, например
`gdb-5.0' для версии 5.0, configure
создает файлы конфигурации для всех подкаталогов низшего уровня (если вы не
велите ему не этого делать ключем `--norecursion').
Вы можете выполнить сценарий configure
из любого подкаталога из
поставки GDB, если вы хотите сконфигурировать только этот
подкаталог, но убедитесь, что указали путь к нему.
Например, для версии 5.0, чтобы сконфигурировать только подкаталог
bfd
, введите:
cd gdb-5.0/bfd ../configure платформа
Вы можете установить gdb
куда угодно; он не имеет никаких
жестко заданных путей. Однако, вы должны удостовериться, что ваша оболочка
(определяемая переменной среды `SHELL') доступна всем для чтения.
Помните, что GDB использует оболочку для запуска вашей программы---
некоторые системы не позволяют GDB отлаживать дочерние
процессы, чьи программы недоступны для чтения.
Если вы хотите запускать версии GDB на нескольких рабочих или
целевых машинах, вам нужны различные gdb
, скомпилированные для
каждой комбинации рабочей и целевой машины. configure
разработан
так, чтобы облегчить это, позволяя вам создавать каждую конфигурацию в
отдельном подкаталоге, а не в исходном каталоге. Если ваша программа
make
поддерживает возможности `VPATH' (GNU make
это делает), вызов make
в каждом из этих каталогов строит
программу gdb
, определенную там.
Чтобы построить gdb
в отдельном каталоге, запустите configure
с
ключем `--srcdir', для определения, где искать источник. (Вам также
нужно определить путь для поиска configure
из вашего рабочего каталога.
Если путь к configure
совпадает с параметром `--srcdir',
ключ `--srcdir' можно опустить; он подразумевается.)
Например, в версии 5.0, вы можете построить GDB в отдельном каталоге для Sun 4 так:
cd gdb-5.0 mkdir ../gdb-sun4 cd ../gdb-sun4 ../gdb-5.0/configure sun4 make
Когда configure
строит конфигурацию, используя удаленный
каталог с источниками, он создает дерево для двоичных файлов с той же
структурой (и используя те же имена), что и дерево каталогов с
исходными текстами. В этом примере, вы бы нашли библиотеку Sun 4
`libiberty.a' в каталоге `gdb-sun4/libiberty', и сам
GDB в `gdb-sun4/gdb'.
Одна из распространенных причин построения нескольких конфигураций
GDB в отдельных каталогах состоит в том, чтобы конфигурировать
GDB для кросс-компиляции (где GDB запускается на
одной машине---рабочей, в то время как отлаживаемые программы
выполняются на другой машине---целевой). Вы определяете целевую
машину кросс-отладки ключем configure
`--target=цель'.
Когда вы выполняете make
для построения программы или библиотеки,
вы должны выполнять ее из сконфигурированного каталога---того каталога,
из которого вы вызывали configure
(или из одного из его подкаталогов).
Makefile
, который создает configure
в каждом исходном
каталоге, также выполняется рекурсивно. Если вы ввели
make
в каталоге с исходными файлами, например в
`gdb-5.0' (или в каталоге, сконфигурированном отдельно
посредством `--srcdir=имя-каталога/gdb-5.0'),
вы построите все требуемые библиотеки, и затем GDB.
Когда у вас имеется несколько рабочих или целевых конфигураций в
отдельных каталогах, вы можете запустить make
для них параллельно
(например, если они смонтированы по NFS на каждой рабочей машине); они
не будут конфликтовать друг с другом.
Спецификации, использованные для рабочих и целевых машин в сценарии
configure
, именуются в соответствии со схемой наименования,
состоящей из трех частей, но поддерживаются также некоторые короткие
предопределенные синонимы. Полная схема наименования кодирует три
фрагмента информации по следующему образцу:
архитектура-производитель-ОС
Например, вы можете использовать синоним sun4
как параметр
платформа, или как значение цель в ключе
--target=цель
.
Эквивалентное полное имя---`sparc-sun-sunos4'.
Сценарий configure
, сопровождающий GDB, не предоставляет
никаких средств для запроса вывода всех поддерживаемых имен рабочих и
целевых машин или их сокращений. configure
вызывает скрипт
оболочки Bourne config.sub
для отображения сокращений в полные
имена; при желании, вы можете посмотреть сценарий или использовать его
для проверки ваших предположений о сокращениях. Например:
% sh config.sub i386-linux i386-pc-linux-gnu % sh config.sub alpha-linux alpha-unknown-linux-gnu % sh config.sub hp9k700 hppa1.1-hp-hpux % sh config.sub sun4 sparc-sun-sunos4.1.1 % sh config.sub sun3 m68k-sun-sunos4.1.1 % sh config.sub i986v Invalid configuration `i986v': machine `i986v' not recognized
config.sub
также распространяется в исходном каталоге
GDB (`gdb-5.0', для версии 5.0).
configure
Здесь приводится обзор ключей и параметров configure
, которые
наиболее часто используются для построения GDB.
configure
также имеет несколько других ключей, не представленных
здесь. See Info file `configure.info', node `What Configure Does', для полного
объяснения configure
.
configure [--help] [--prefix=каталог] [--exec-prefix=каталог] [--srcdir=имя-каталога] [--norecursion] [--rm] [--target=цель] платформа
Если хотите, можете вводить ключи с одним `-', а не с `--'; но вы можете сокращать имена ключей, если используете `--'.
--help
configure
.
--prefix=каталог
--exec-prefix=каталог
--srcdir=имя-каталога
make
или другой программы make
, реализующей возможности
VPATH
.configure
записывает файлы, относящиеся к конфигурации, в текущий
каталог, но принимает меры, чтобы можно было использовать источники в
каталоге имя-каталога. configure
создает каталоги внутри
рабочего каталога параллельно с исходными каталогами внутри имя-каталога.
--norecursion
configure
; не распространять конфигурацию на подкаталоги.
--target=цель
платформа ...
Существует также много других ключей, но обычно они требуются только для специальных целей.
Go to the first, previous, next, last section, table of contents.
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |