Cтраница 3
Выдаваемый транслятором или компоновщиком список использованных в программе идентификаторов и их атрибутов. [31]
Эта задача решается компоновщиком приложений, Поэтому компилятор не покажет даже предупреждение. [32]
Поэтому, когда запускается компоновщик, он находит местоположение библиотечной функции и вставляет соответствующий вызов этой библиотечной функции в объектную программу. Теперь объектная программа имеет законченный вид и готова к выполнению. Часто скомпонованную программу так и называют: исполняемой. Если имя функции содержит ошибку, именно компоновщик ее обнаружит, так как не сумеет сопоставить имя в программе на языке С имени какой-либо из существующих в библиотеке функций. [33]
В случае динамической компоновки компоновщик просто использует информацию о подпрограмме для настройки соответствующих таблиц в исполняемом файле. Когда исполняемый модуль загружается в память, операционная система загружает также все необходимые динамические библиотеки и заполняет внутренние таблицы программы адресами библиотечных подпрограмм в памяти, после чего программа запускается на исполнение. [34]
Во вкладке Linker ( Компоновщик) диалогового окна Project Options вы устанавливаете опции, которые определяют работу компоновщика. [35]
Когда приложение компонуется, компоновщик видит, что некоторые библиотечные процедуры принадлежат к динамическим библиотекам, и записывает эту информацию в заголовок исполняемого файла. Обращения к процедурам динамических библиотек производятся не напрямую, а при помощи вектора передачи в адресном пространстве вызывающего процесса. Изначально этот вектор заполнен нулями, так как адреса вызываемых процедур еще неизвестны. [36]
В чем состоит назначение компоновщика. [37]
Если параметры, передаваемые компоновщику, вам еще не знакомы, следует обратиться к документации по компилятору, чтобы разобраться в деталях. Впрочем, я коротко объясню, что опция / align предписывает, чтобы сегменты были выровнены на 16-битовые границы. Параметр NUL говорит компоновщику, чтобы тот не беспокоился о создании файла карты распределение памяти. Опция / nod указывает на отсутствие библиотек умолчания. [38]
GBL и OVR компонуются компоновщиком по одному и тому же адресу. [39]
В FoxPro 1.0 не предусматривается компоновщик для объектных модулей. Однако имеется утилита FoxBind, которая собирает файлы исходного кода в один большой файл и компилирует его в единый объектный модуль. За особую плату поставляется версия стадии исполнения. [40]
После компиляции подпрограммы статической библиотеки компоновщик добавляет ее откомпилированный код к исполняемой программе. Получившийся в результате исполнительный модуль содержит код программы и всех используемых подпрограмм. [41]
На вкладке Linker перечислены параметры компоновщика. [42]
Файл, содержащий информацию для компоновщика об именах объектных модулей, из которых строится загрузочный модуль, а также о других параметрах компоновки. [43]
После обращения программиста, вызова компоновщика и передачи ему списка вводных файлов последний обращается к библиотеке программ пользователя и системной библиотеке, отыскивая и связывая в единый загрузочный модуль отдельные части программы. [44]
Для более подробного изучения работы компоновщика следует обратиться к специальной литературе. [45]