Interested Article - Объектный модуль
- 2020-06-16
- 1
Объе́ктный мо́дуль (также — объектный файл , англ. object file ) — файл с промежуточным представлением отдельного модуля программы, полученный в результате обработки исходного кода компилятором . Объектный файл содержит в себе особым образом подготовленный код (часто называемый двоичным или бинарным ), который может быть объединён с другими объектными файлами при помощи редактора связей ( компоновщика ) для получения готового исполнимого модуля либо библиотеки.
Объектные файлы представляют собой блоки машинного кода и данных с неопределенными адресами ссылок на данные и процедуры в других объектных модулях, а также список своих процедур и данных. Компоновщик собирает код и данные каждого объектного модуля в итоговую программу, вычисляет и заполняет адреса перекрестных ссылок между модулями. Связывание со статическими библиотеками выполняется редактором связей или компоновщиком (который может представлять собой отдельную программу или быть частью компилятора), а с операционной системой и динамическими библиотеками связывание выполняется при исполнении программы, после её загрузки в память.
Программист генерирует объектный код с помощью компилятора или ассемблера. Например, в Linux компилятор GNU Compiler Collection будет генерировать файлы с расширением .o, которые используют формат ELF. При компиляции в Windows создаются файлы с расширением .obj, использующие формат COFF. Затем компоновщик используется для объединения объектного кода в одну исполняемую программу или библиотеку, при необходимости извлекая предварительно скомпилированные системные библиотеки.
Существует множество различных форматов объектных файлов; изначально у каждого типа компьютеров был свой уникальный формат, но с появлением Unix и других портативных операционных систем некоторые форматы, такие как ELF и COFF, были определены и использовались в разных типах систем. Один и тот же формат может использоваться как для ввода, так и для вывода компоновщика и, таким образом, в качестве формата библиотеки и исполняемого файла. Некоторые форматы могут содержать машинный код для разных процессоров, при этом правильный вариант выбирается операционной системой при загрузке программы .
См. также
Примечания
- // DBAs Guide to Databases Under Linux. — Elsevier, 2000. — С. 237–282 .
|
В статье
не хватает
ссылок на источники
(см.
рекомендации по поиску
).
|
- 2020-06-16
- 1