Unix Man (Справочное руководство)

         

LD(7)


LD(7)

НАЗВАНИЕ


ld - вызывает редактор связи.

СИНТАКСИС

ld [options] filename

ОПИСАНИЕ


ld является редактором связи XENIX. Он создает вычисляемую программу путем объединения одного или более объектных файлов и копирования вычисляемого результата в файл a.out. filename должен назвать объект или библиотечный файл. Эти имена должны иметь ".о" (для объекта) или ".а" (для архивной библиотеки) расширения. Если дано более, чем одно имя, имена должны разделяться одним или более пробелами. Если при связывании возникли ошибки, ld выдает на дисплей сообщения об ошибках: результирующий файл а.out не вычисляем.

ld конкатенирует содержание данных объектных файлов в порядке, задаваемом управляющей строкой. Библиотечные файлы в управляющей строке рассматриваются только в том случае, если существуют неразрешенные внешние ссылки, поступившие из предыдущих объектных файлов. Библиотечные файлы должны быть в формате, первый член должен называться __.SYMDEF, который является словарем библиотеки. Библиотека повторно просматривается для того, чтобы удовлетворить как можно большему количеству ссылок, и конкатенируются только те программы, которые определяют неразрешенные внешние ссылки. Объектные и библиотечные файлы обрабатываются в точке, в которой они поступают в список аргументов, и в связи с этим имеет значение порядок файлов в управляющей строке.В общем случае все объектные файлы должны даваться до библиотечных файлов. ld устанавливает входную результирующую программу в начало первой программы.

Существуют следующие параметры:

-A num

Создает автономную программу, ожидаемый загрузочный адрес, которой (в шестнадцатиричном коде) - num. Этот параметр устанавливает абсолютный флаг в заголовок файла a.out. Такие программные файлы могут вычисляться только как автономные программы. Параметры -А и -F взаимоисключающие.

-В num

Устанавливает текстовый селектор в определенное шестнадцатиричное число.

-с num

Меняет целевой ЦПУ по умолчанию в заголовке x.out. num может быть 0, 1, 2 или 3, указывая 8086, 80186, 80286 и 80386 процессоры, соответсвенно. По умолчанию для 8086/80286 систем 0. По умолчанию до 80386 систем 3. Отметим, что этот параметр изменяет только умолчание; если подсоединены объектные модули, содержащие код для процессора с высшими номерами, то это потребует превышения над умолчанием.


Прописные символы или строчные не различаются редактором связи.

-D num



Устанавливает селектор данных в определенное нестандартное число.

-С5



Включает бит для вызова /usr/lib/coffconv с редактором связи, порождая x.out в двоичном исчислении, совместимый с COFF.

-СХ



Выключает битовую установку с -С5, которая находится в заголовке объектного файла.

-F num





Устанавливает размер программного стека в num байтов, где num - шестнадцатиричное число. Этот параметр игнорируется для программ 80386, у которых стек имеет переменный размер. По умолчанию программы 8086 имеют переменный стек, расположенный сверху первого сегмента данных, а программы 80286 имеют стек фиксированного размера в 4096 байт. Параметр -F несовместим с -А.

-i



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

-La



Устанавливает рекомендуемую файловую блокировку. Рекомендуемая файловая блокировка используется в файлах с режимами доступа, не требующими обязательной блокировки.

-Lm



Устанавливает обязательную файловую блокировку. Обязательная файловая блокировка используется в файлах, которые не могут быть открыты одновременно более чем одним пользователем.

-m name



Создает связывающий табличный файл с именем name, включающим общие символы.

-Ms



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

-Mm



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

-MI



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

-Mx





Определяет модель памяти. х может иметь следующие значения: smlhe
маленький
средний
большой
очень большой
смешанный

-n num



Усекает символы на длину, определенную num.

-N num



Устанавливает размер страницы на шестнадцатиричный num (который должен быть кратен 512) - по умолчанию 1024 для программ 80386. 8086/80186/80286 программы, как правило, не имеют выравненных по странице файлов x.out, и по умолчанию для них.

-о name



Устанавливает имя файла вычисляемой программы, равное name вместо a.out.

-P



Делает невозможным упаковку сегментов.

-r



Вызывает пошаговый связыватель /lib/ldr с аргументами, передаваемыми на ld для создания переместимого выходного файла.

-R



Служит для того, чтобы таблица перемещений была не нулевого размера. Важна для совместимости 8086.

-Rd num



Определяет смещение перемещения сегмента информации (только 80386). num - шестнадцатиричное число.

-Rt num



Определяет смещение перемещения сегмента текста (только 80386). num - десятиричное число.

-s



Очищает таблицу символов.

-S num



Устанавливает максимальное число сегмента на num. Если нет аргументов, по умолчанию 128.

-u symbol



Обозначает некоторый symbol как неопределенное.

-v num



Определяет число версий XENIX. Доступные значения для num 2,3 или 5; 5 по умолчанию.

ld следует вызывать с помощью вместо ее прямого вызова. Сс вызывает ld как последний шаг компилляции, обеспечивая все необходимые поддерживающие программы языка С. Прямой вызов ld не рекомендуется, так как неудача выдачи аргументов управляющей сторки в правильном порядке может дать ошибки.

ФАЙЛЫ



/bin/ld

СМ. ТАКЖЕ



ar(2), cc(2), ld(2), masm(2), ranlib(2)

ПРИМЕЧАНИЯ



Перед тем, как связываться, пользователь должен убедиться, что с ranlib(2) выполняются самые последние библиотечные версии. Если это не сделано, ld не сможет создать вычисляемые программы, используя эти библиотеки.


Содержание раздела