mark.zlatoust.ru Послать письмо Webmaster-у Web-Master © Бернадинер Марк 

Златоуст.Ru

 

 

            LD(1)                                                     LD(1)

            НАЗВАНИЕ
		    ld - редактор связей для объектных файлов обычного фор-
                    мата

            СИНТАКСИС
      	  ld  [-e вх_имя] [-f заполнитель] [-l библ] [-m] [-o вых_файл] [-r]
      	      [-a] [-s] [-t] [-uнеоп_имя] [-x] [-z] [-Lкаталог] [-М] [-N] [-V]
      	      [-VS номер] [-Y[LU],каталог] файл ...

            ОПИСАНИЕ
		    Команда ld  объединяет  несколько  объектных  файлов  в
                    один, размещает команды  и  данные,  разрешает  внешние
                    ссылки и генерирует таблицу имен для символьной  отлад-
                    ки. В простейшем случае задаются имена нескольких  об -
                    ектных программ, и редактор связей об единяет их в один
                    об ектный модуль, который может затем или  выполняться,
                    или использоваться в качестве исходного при последующих
                    вызовах ld. Результат редактирования связей  помещается
                    в файл с именем a.out,  который  является  выполняемым,
                    если во время работы не было зафиксировано ошибок. Если
                    какой-либо исходный  файл  не  является  об ектным,  ld
                    предполагает, что это либо текстовый файл с директивами
                    для редактора связей, либо архивная библиотека.

                    Библиотеки, являющиеся аргументами, обрабатываются ров-
                    но один раз, когда до них доходит очередь по списку ар-
                    гументов. Библиотека может быть либо  перемещаемой  ар-
                    хивной, либо  разделяемой. Загружаются только  те  под-
                    программы,  на которые есть неразрешенные внешние ссыл-
                    ки.  Таблица  имен  библиотеки (архива) просматривается
                    последовательно, причем столько раз, сколько необходимо
                    для разрешения внешних ссылок на библиотечные  подпрог-
                    раммы. Тем самым порядок следования элементов библиоте-
                    ки  оказывается  несущественным, если только какое-либо
                    внешнее имя не определяется в нескольких элементах биб-
                    лиотеки.

                    Редактор связей ld распознает нижеследующие опции.  Об-
                    ратите внимание на отсутствие пробелов между флагом  -u
                    и аргументом опции неоп_имя, между -L и каталогом.

                    -e вх_имя
                         Установить подразумеваемый адрес входа в результи-
			 рующий файл равным адресу объекта вх_имя. Без этой
                         опции подразумеваемый адрес равен 0.

                    -f заполнитель
                         Заполнить указанным значением (целым числом  от  0
                         до 32767) "дыры" в выходных секциях и секциях неи-
                         нициализированных данных.

                    -l библ
                         Использовать  библиотеку  с  именем libбибл.a, где
                         библ является цепочкой символов длиной не более 7.
                         Библиотека просматривается, когда  встречается  ее
                         имя,  поэтому  порядок указания опции -l существе-
                         нен. По умолчанию библиотеки разыскиваются в ката-
                         логах LIBDIR и LLIBDIR.

                    -m   Выдать карту входных/выходных секций на  стандарт-
                         ный вывод.

                    -o вых_файл
                         Вывести результат редактирования связей в  файл  с
                         именем вых_файл.  По  умолчанию  используется  имя
                         a.out.

		    -r   Оставить  в  выходном объектном файле информацию о
                         настройке ссылок. Она нужна,  если  выходной  файл
                         будет  входным при последующем редактировании свя-
                         зей. Редактор связей не  считает  ошибкой  наличие
                         неразрешенных  ссылок;  просто результирующий файл
                         не будет выполняемым.

                    -a   Создать абсолютный файл.  Эта  опция  работает  по
                         умолчанию,  если  не задается опция -r. В совокуп-
                         ности с опцией -r опция -a обеспечивает  выделение
			 памяти для общих глобальных объектов.

		    -s   Не помещать в выходной объектный файл таблицу имен
                         и информацию о номерах строк.

                    -t   Отказаться от выдачи предупреждений при многократ-
			 ном определении объектов с разными размерами.

                    -uнеоп_имя
			 Занести в таблицу имен объект неоп_имя как неопре-
                         деленный. Такая возможность полезна, когда  загру-
                         жаются только библиотечные файлы, поскольку в  на-
                         чальный момент таблица имен пуста и нужна "затрав-
                         ка" в виде неразрешенной ссылки  для  загрузки  из
                         библиотеки первой программы.

                    -x   Не помещать локальные (не .globl) имена в выходную
                         таблицу имен; помещать только внешние и  статичес-
                         кие  имена.  Использование  этой  опции  несколько
                         уменьшает размер выходного файла.

                    -z   Не размещать что-либо по нулевому адресу. Эта  оп-
                         ция предоставляет возможность  обнаружить  нулевые
                         указатели во время выполнения.

                    -Lкаталог
                         Изменить алгоритм поиска библиотек libбибл.a:  ис-
                         кать их сначала в заданном каталоге, а затем в ка-
                         талогах LIBDIR и LLIBDIR. Эта опция работает толь-
                         ко в том случае, если в командной строке она пред-
                         шествует опции -l.

                    -М   Выдавать сообщение для каждого многократно опреде-
			 ленного внешнего объекта.

                    -N   Расположить секцию команд в самом начале  сегмента
                         команд,  а не за всеми заголовками, и в образе па-
                         мяти поместить секцию  данных  непосредственно  за
                         секцией команд.

                    -V   Вывести информацию о версии редактора связей.

                    -VS номер
                         Использовать  десятичный номер для идентифицикации
                         версии выходного файла a.out. Номер версии помеща-
                         ется в заголовок файла.

                    -Y[LU],каталог
                         Изменить стандартный каталог, используемый для по-
                         иска библиотек. Если задано L, то первый стандарт-
                         ный каталог, который просматривает редактор связей
                         ld, LIBDIR, замещается указанным  каталогом.  Если
                         задано U и редактор связей ld работает  со  вторым
                         стандартным каталогом LLIBDIR, то LLIBDIR  замеща-
                         ется указанным каталогом. Если редактор связей  ld
                         работает только с одним  стандартным  каталогом  и
                         задано U, то печатается предупреждение и опция иг-
                         норируется.

            ФАЙЛЫ
                    LIBDIR/lib*.a           Библиотеки.
                    LLIBDIR/lib*.a          Библиотеки.
                    a.out                   Выходной файл.
                    LIBDIR                  Обычно /lib.
                    LLIBDIR                 Обычно /usr/lib.

            СМ. ТАКЖЕ
                    as(1), cc(1), mkshlib(1).
                    exit(2), end(3C), a.out(4), ar(4) в  Справочнике  прог-
                    раммиста.

            ОГРАНИЧЕНИЯ
                    Опции и файлы директив обеспечивают большую гибкость  в
                    работе редактора связей; однако тот, кто использует ди-
                    рективы, должен сознавать некоторую дополнительную  от-
                    ветственность.  Директивы  должны  сохранять  следующие
                    свойства программ:

                    1.   Язык C определяет пустой указатель как нуль.  Ука-
                         затель, которому присвоен нуль, не  должен  указы-
                         вать ни на какой об ект. Чтобы  гарантировать  вы-
                         полнение этого свойства,  пользователи  не  должны
                         помещать об екты в секции данных по нулевому  вир-
                         туальному адресу.

                    2.   Когда редактор связей вызывается на выполнение ко-
                         мандой cc(1), программа пользователя  об единяется
                         с инициализирующей программой. Эта последняя после
                         обращения  к программе пользователя выполняет сис-
                         темный вызов exit [см. exit(2)]. Если пользователь
                         вызывает редактор связей сам, он должен гарантиро-
                         вать, что программа завершает выполнение системным
                         вызовом exit.

                    Имена etext, edata и end [см. end(3C)] резервируются  и
                    определяются редактором связей. Недопустимо переопреде-
                    лять их в программе пользователя.

                    Если редактор связей не распознает  какой-либо  входной
                    файл как об ектный или архивный,  то  он  предполагает,
                    что файл содержит директивы редактора связей, и пытает-
                    ся сделать синтаксический разбор. В этом случае возмож-
                    ны сообщения о синтаксических ошибках.

                    Каждое арифметическое выражение может содержать  только
                    одно имя, определяемое далее.



 

 

Бернадинер Марк Абрамович

Мое резюме

Компьютерная страничка

Ресурсы сети

Фотоальбом

 

 

 

mark.zlatoust.ru Послать письмо Webmaster-у Web-Master © Бернадинер Марк