Что такое объектный файл
Перейти к содержимому

Что такое объектный файл

  • автор:

Объектный файл

Обье́ктный мо́дуль (также — объектный файл, англ. object file ) — файл с промежуточным представлением отдельного модуля программы, полученный в результате обработки исходного кода компилятором. Объектный файл содержит в себе особым образом подготовленный код (часто называемый бинарным), который может быть объединён с другими объектными файлами при помощи редактора связей (компоновщика) для получения готового исполнимого модуля либо библиотеки.

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

См. также

  • Executable and Linking Format
  • Ассемблер

Wikimedia Foundation . 2010 .

Смотреть что такое «Объектный файл» в других словарях:

  • Объектный модуль — (также объектный файл, англ. object file) файл с промежуточным представлением отдельного модуля программы, полученный в результате обработки исходного кода компилятором. Объектный файл содержит в себе особым образом подготовленный код (часто … Википедия
  • Объектный Си — Objective C Класс языка: объектно ориентированный, мультипарадигмальный: рефлексивно ориентированный Появился в: 1986 г. Автор(ы): Типизация данных: строгая полиморфная, статическая Основные реализации: Apple gcc Испытал … Википедия
  • Список расширений имени файла/A — / * A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Примечание: Поскольку расширение имени файла может быть любым, представленный список не является полным … Википедия
  • Метаобъектный компилятор — Эта статья предлагается к удалению. Пояснение причин и соответствующее обсуждение вы можете найти на странице Википедия:К удалению/25 июня 2012. Пока процесс обсуждения … Википедия
  • DICOM — (англ. Digital Imaging and Communications in Medicine) отраслевой стандарт создания, хранения, передачи и визуализации медицинских изображений и документов обследованных пациентов. Содержание 1 DICOM Standard 2 DICOM File 3 DICOM… … Википедия
  • D (язык программирования) — У этого термина существуют и другие значения, см. D. D Семантика: мультипарадигменный: императивное, объектно ориентированное, обобщённое программирование Тип исполнения: компилятор Появился в: 1999 Автор(ы) … Википедия
  • Компиляция — в программировании перевод программы с языка высокого уровня в машинный язык. Результатом компиляции является объектный файл с необходимыми внешними ссылками для компоновщика. См. также: Трансляторы Финансовый словарь Финам … Финансовый словарь
  • Дизассемблер — транслятор, преобразующий машинный код, объектный файл или библиотечные модули в текст программы на языке ассемблера. По режиму работы с пользователем делятся на Автоматические Интерактивные Примером автоматических дизассемблеров может служить… … Википедия
  • Блоб — О типе данных в БД см. BLOB. Блоб (от англ. binary linked object объект двоичной компоновки) объектный файл без публично доступных исходных кодов, загружаемый в ядро операционной системы. Обычно этот термин применяется только по… … Википедия
  • Загружаемый модуль ядра — (loadable kernel module, LKM) в информатике объектный файл, содержащий код, расширяющий возможности ядра операционной системы. Модули используются, чтобы добавить поддержку нового оборудования или файловых систем или для добавления… … Википедия
  • Обратная связь: Техподдержка, Реклама на сайте
  • �� Путешествия

Экспорт словарей на сайты, сделанные на PHP,
WordPress, MODx.

  • Пометить текст и поделитьсяИскать в этом же словареИскать синонимы
  • Искать во всех словарях
  • Искать в переводах
  • Искать в ИнтернетеИскать в этой же категории

Что такое объектный модуль?

Напишите, пожалуйста, определение для объектного модуля более простым языком. Читал про него в википедии, но так ничего и не понял.

  • Вопрос задан более трёх лет назад
  • 5979 просмотров

Комментировать
Решения вопроса 0
Ответы на вопрос 2

tsarevfs

tsarevfs @tsarevfs Куратор тега C++
C++ developer

Сборка с или с++ кода проходит в 2 этапа.
1 — компиляция. На нем каждый cpp-шник преобразуется в объектный файл. Поскольку каждый файл компилируется независимо, мы пока не можем вычислить адрес функций из другого объектника. На их месте оставляем дырки и записываем в специальные таблички символы которые ожидаем
/ имеем.
Потом происходит линковка. Все объектные файлы записываются друг за другом, и теперь можно заполнить адреса всех функций.
Статические библиотеки ведут себя примерно как обычные объектные файлы. С динамическими все несколько сложней.

Ответ написан более трёх лет назад
Комментировать
Нравится 4 Комментировать

vvpoloskin

Валентин @vvpoloskin
Инженер связи

Компилятор после сборки собирает бинарь, это и есть объектный модуль. После он связывается с нужными библиотеками (статическими или динамическими). После полного этапа сборки в результате получается нужный файл.

Ответ написан более трёх лет назад
Комментировать
Нравится 1 Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

html

  • HTML
  • +1 ещё

Как изменить строчку кода HTML на чужом сайте tampermonkey?

  • 2 подписчика
  • час назад
  • 55 просмотров

Кафедра “Программное Обеспечение”

x

Вход в систему

    Asmportal
  • -Теория
    • Лекции по курсу «ПАКМ»
  • +Лабораторные и курсовые работы
    • Задания на лабораторные работы
    • Задания на курсовые работы
    • Формирование отчета
    • Загрузить файл на сервер
    • Файлы
  • +Инструменты
    • В linux
  • +Литература
  • +О проекте

[В печать]

11 мая 2009

Лекции по курсу «Проектирование ассемблеров, компоновщиков, макропроцессоров»

17. Структура объектных файлов. Основные понятия

Ниже приводятся определения основных терминов, используемых в описании объектного модуля.

OMF — форматы объектного модуля.

MAS — адресное пространство. 8086 MAS равно 1 мегабайту (1 048 576 байт). Следует отметить, что MAS отличается от реальной памяти, т.к. последняя занимает лишь часть MAS.

Модуль — это неделимое единство объектного кода и другой информации, создаваемое в результате работы транслятора.

T-модуль — это модуль, создаваемый такими трансляторами, как Pascal, C, Asm.

  • Каждый модуль должен иметь имя. Если таковое не указано, то транслятор присваивает имя по умолчанию (имя файла или нулевое имя).
  • Каждый Т-модуль в группе модулей должен иметь уникальное имя. Для сборщика Microsoft linker это не обязательно.

Фрагмент — это непрерывный участок MAS, длиной 64 Кбайта, начинающийся на границе параграфа (совпадает с термином «сегмент»). Сегментные регистры процессора определяют только четыре фрагмента (возможно перекрывающихся). Ни один 16-разрядный адрес не имеет доступа к памяти вне четырех текущих фрагментов.

Логический сегмент (ЛСЕГ) — непрерывный участок памяти, чье содержимое определяется во время трансляции (за исключением адресной привязки). Размер ЛСЕГ также не окончателен, т.к. при сборке несколько ЛСЕГ могут быть объединены в один ЛСЕГ. Размер ЛСЕГ не должен превышать 64 Кбайт. Таким образом, 16-битовое смещение от базы фрагмента, содержащего ЛСЕГ, может адресовать любой байт в ЛСЕГ.

Физический сегмент (ФСЕГ) — эквивалент термина «фрагмент».

Каждый фрагмент начинается на границе параграфа. Параграфы памяти (16 байт) можно пронумеровать от 0 до 65 535. Эти номера и являются номерами соответствующих фрагментов.

Группа — это несколько ЛСЕГ, определенных во время трансляции, чье положение в MAS скомпоновано таким образом, что существует хотя бы один фрагмент, перекрывающий все ЛСЕГ в группе.

Канонический фрагмент (применим к некоторой ячейке памяти) — минимальное расстояние до ячейки от начала параграфа.

Каждому ЛСЕГ назначается имя во время трансляции. Это делается по следующим причинам:

  • необходимо определить о время сборки, какие ЛСЕГ скомбинированы друг с другом;
  • необходимо указать членство в группах.

Кафедра “Программное Обеспечение”

x

Вход в систему

    Asmportal
  • -Теория
    • Лекции по курсу «ПАКМ»
  • +Лабораторные и курсовые работы
    • Задания на лабораторные работы
    • Задания на курсовые работы
    • Формирование отчета
    • Загрузить файл на сервер
    • Файлы
  • +Инструменты
    • В linux
  • +Литература
  • +О проекте

[В печать]

11 мая 2009

Лекции по курсу «Проектирование ассемблеров, компоновщиков, макропроцессоров»

20. Структура объектных файлов. Последовательность записей

Ниже приведен допустимый порядок следования записей в объектном модуле.


object file = tmodule
tmodule = seg-grp modtail
seg-grp =
component = data | debug-record
data = content-def | thread-def | PUBDEF | EXTDEF | COMDEF | LOCSYM
debug-record = LINNUM
content-def = data-record
thread-def = FIXUPP (содержащая только поля thread)
data-record = LIDATA | LEDATA
modtail = MODEND
  • Запись FIXUPP всегда относится к предыдущей записи данных.
  • Все записи LNAMES, SEGDEF, GRPDEF и EXTDEF должны предшествовать всем записям, обращающимся к ним.
  • Запись комментариев может быть в любом месте файла. Однако она не может быть первой или последней записью файла, а также входить в content-def.

Названия записей состоят из 6 заглавных букв. Если запись находится в фигурных скобках, то она является необязательным компонентом.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *