Программа TLINK EXE
Программа TLINK32.EXE.
В пакетах Borland С, начиная с 1997 года, сосуществовали две программы для компоновки объектных файлов: tlink32.exe и ilink32.exe. Опции этих программ практически совпадали, ilink32.exe - инкрементальный, или пошаговый, компоновщик. Он хранит информацию о предыдущих компоновках, что позволяет значительно ускорить весь процесс повторных трансляций. В последнее время программа tlink32.exe вообще исчезла из поставки. В дальнейшем мы не будем делать различий между этими двумя программами. Опции, помеченные (+), появились в новых версиях ilink32.exe, а опции со знаком (-), наоборот, исчезли. В новых версиях для выделения опции используется "/" вместо тире.
| -m | Создать МАР-файл с информацией о сегментах и два листинга с PUBLIC-именами (в алфавитном и адресном порядке). |
| -s | Детальная информация о сегментах в МАР-файле. |
| -M | Поместить в МАР-файл сокращенные имена идентификаторов. |
| -c | Различать прописные и заглавные буквы в PUBLIC и EXTERNAL именах. |
| -Enn | Задает максимальное количество ошибок, приводящее к остановке компоновки. |
| -P- | Запретить паковать сегменты. Имеет смысл для 16-битных приложений (-P — разрешить). |
| -b:хххх | Задает базовый адрес. По умолчанию базовый адрес равен 400000Н. (+) |
| -B:хххх | Аналогично опции -b, но не создает таблицу настройки. Ключи —b и -B могут несколько ускорить работу программы. |
| -wxxx | Возможные предупреждения. Например, -w-stk игнорировать отсутствие стекового сегмента. |
| -Txx | -Tpx PE image(x: е=ЕХЕ, d=DLL) Тип выходного файла. Tpe - создать ЕХЕ-файл. Tpd - создать DLL-файл. Tpp - создать пакетный файл. (+) |
| -ax -ap -aa | -ар — создать консольное приложение, -аа — создать обычное Windows-приложение (GUI), -ad — создать 32-битный драйвер для Windows.(+) |
| -r | Заставляет компоновщик выдавать информацию о процессе компоновки. |
| -Vd.d | Помещает в ЕХЕ-заголовок ожидаемую версию Windows. |
| -Ud.d | Поместить в заголовок ЕХЕ-файла номер версии программы. (+) |
| -o | Импорт по номеру функции. (-) |
| -Ao:nnnn | Определяет величину выравнивания (кратно 2, минимально 16). |
| -Af:nnnn | Файл выравнивания. |
| -Sc:xxxx | Определить размер стека. |
| -S:xxxx | Определить размер резервного стека. Минимально 4К. |
| -Hc:хххх | Определить размер специальной "кучи". |
| -H:хххх | Определить размер резервной "кучи". |
| -n | Нет библиотеки "по умолчанию". (-) |
| -v | Поместить в исполняемый файл полную отладочную информацию. Можно использовать -v+ и -v- для селективного помещения отладочной информации в отдельные файлы. |
| -j | Определить путь поиска OBJ-файлов. |
| -L | Определить путь к LIB-библиотеке. |
| -x | Не создавать МАР-файл. |
| -Rr | Позволяет заменять или добавлять ресурсы. (+) |
| -d | Установить задержку загрузки библиотеки DLL. Она будет загружаться лишь при вызове входной процедуры. (+) |
| -Dxxxx | Поместить в PE-заголовок специальный дескриптор. |
| -GC | Поместить в заголовок РЕ строку (или строки). Например -GC"Hellow!". (+) |
| -GD | Генерировать Delphi-совместимый файл ресурсов. (+) |
| -GF | Установить флаг для загрузочного модуля: SWAPNET - указание для операционной системы поместить загрузочный модуль в swap-файл и загружать его оттуда, если он расположен на сетевом устройстве. SWAPCD - аналогично предыдущему флагу, но для съемных устройств. UNIPROCESSOR - приложение не должно запускаться в мультипроцессорной системе. LARGEADDRESSAWARE - приложение использует адреса больше 4 Gb. AGGRESSIVE - операционная система удаляет приложение из памяти в случае его простоя.(+) |
| -Gk | Заставляет компоновщик оставлять в случае ошибки те файлы, которые обычно в этом случае уничтожались.(+) |
| -Gl | Генерировать LIB-файл.(+) |
| -Gpr | Создавать пакет "времени исполнения".(+) |
| -Gpd | Создать пакет "времени создания".(+) |
| -Gn | Запретить пошаговую компиляцию.(+) |
| -GSstring | -GS:string=[ECIRWSDKP] Добавляет флаги к уже существующим флагам секций.(+) |
| -Gz | Помещает в РЕ-заголовок контрольную сумму загрузочного модуля. |
Завершая главу, приведу несколько простых примеров.