LD(7)
НАЗВАНИЕ
ld - вызывает редактор связи.
СИНТАКСИС
ld [options] filename
ОПИСАНИЕ
ld является редактором связи XENIX. Он создает вычисляемую программу путем объединения одного или более объектных
файлов и копирования вычисляемого результата в файл a.out.
filename должен назвать объект или библиотечный файл. Эти имена должны иметь ".о" (для объекта) или ".а" (для архивной библиотеки) расширения. Если дано более, чем одно имя, имена
должны разделяться одним или более пробелами. Если при связывании возникли ошибки, ld выдает на дисплей сообщения об ошибках: результирующий файл а.out не вычисляем.
ld конкатенирует содержание данных объектных файлов в порядке, задаваемом управляющей строкой. Библиотечные файлы в
управляющей строке рассматриваются только в том случае, если
существуют неразрешенные внешние ссылки, поступившие из предыдущих объектных файлов. Библиотечные файлы должны быть в
ranlib(1) формате, первый член должен называться __.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
- Определяет модель памяти. х может иметь следующие значения:
s | маленький |
m | средний |
l | большой |
h | очень большой |
e | смешанный |
- -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 следует вызывать с помощью cc(1) вместо ее прямого
вызова. Сс вызывает ld как последний шаг компилляции, обеспечивая все необходимые поддерживающие программы языка С. Прямой
вызов ld не рекомендуется, так как неудача выдачи аргументов
управляющей сторки в правильном порядке может дать ошибки.
ФАЙЛЫ
/bin/ld
СМ. ТАКЖЕ
ar(2), cc(2), ld(2), masm(2), ranlib(2)
ПРИМЕЧАНИЯ
Перед тем, как связываться, пользователь должен убедиться, что с ranlib(2) выполняются самые последние библиотечные
версии. Если это не сделано, ld не сможет создать вычисляемые
программы, используя эти библиотеки.