Сценарий компоновки

Сценарий компоновки содержит подробные инструкции для управления процессом компоновки Чтобы понимать эти возможности и уметь ими пользоваться, необходимо знать этапы компиляции исходного кода на языке С. Процесс компиляции исходного кода на языке С для других компиляторов С состоит из тех же эта­пов, что и для компилятора GCC видно, что компоновщик играет важную роль в создании испол­няемого файла. С его помощью объектный файл и библиотечные файлы из разных источников компонуются, т. е. соединяются, в один исполняемый файл, содержащий чисто машинный код. В данной книге рассматривается только «чистый» машинный код, так как BIOS общается с аппаратными сред­ствами напрямую.
С помощью сценария компоновки можно контролировать каждый аспект процесса компоновки, например, перемещение результатов ком­пиляции, формат исполняемого файла и точку входа в исполняемом файле. В совокупности с различными утилитами обработки двоичных файлов, сценарий компоновки предоставляет программисту мощный инструмент разработки программного обеспечения. Как видно из рис. 3.2, исходный код на языке ассемблера и исходный код на языке С можно Ском­пилировать отдельно, а затем с помощью компоновщика LD Скомпоновать Получившиеся объектные файлы в один исполняемый файл.Исходный код на языке С Компиляция исходного кода Объектный файл Компоновщик LD -> Исполняемый двоичный файл Компиляция исходного кода -» Объектный файл Компоновщик LD -> Объектный файл -> Утилита Objcopy -> Исполняемый двоичный файл В данном разделе рассматривается второй способ. Для примера рассмотрим сценарий компоновки, используемый для создания экспериментальной BIOS платы расширения PCI, рассматриваемой в Части III этой книги. Это — до­вольно простой сценарий компоновки. Именно поэтому он и выбран для на­чального этапа обучения. Сценарий компоновки представляет собой обычный текстовый файл. Однако его содержимое должно удовлетворять определенным синтаксическим пра­вилам компоновщика LD. В большинстве случаев используется именно фор­мат, показанный на рис. 3.3. Для примера, рассмотрим make-файл и сценарий компоновщика из Главы 7. Make-файл и сценарий компоновки тесно связаны между собой, и поэтому должны рассматриваться совместно. Чтобы разобраться с содержимым листинга 3.5, вернемся к рис. 3.3. Но сна­чала следует отметить, что, как и в исходном коде языка С, последователь­ность знаков /* и */ в сценарии компоновки служит для обрамления коммен­тариев. Таким образом, первой значимой строкой кода в листинге 3.5 является следующая:



Рубрика: Женский интерес

Комментарии закрыты.