Составители:
Рубрика:
30
Внешний интерфейс GCC является стандартом для
компиляторов в Unix-системах. Пользователь вызывает
управляющую программу gcc. Команда gcc интерпретирует
аргументы командной строки, определяет и выполняет для каждого
входного файла свои компиляторы нужного языка, запускает, если
необходимо, ассемблер и компоновщик.
Работа компилятора gcc состоит из трех этапов: обработка
препроцессором, компиляция и компоновка (или линковка).
Препроцессор включает в основной файл содержимое всех
заголовочных файлов, указанных в директивах #include. В
заголовочных файлах обычно находятся объявления функций,
используемых в программе, но не определённых в тексте
программы. Их определения находятся где-то в другом месте: или в
других файлах с исходным кодом или в бинарных библиотеках.
Вторая стадия – компиляция. Она заключается в превращении
текста программы на исходном языке в набор машинных команд.
Результат сохраняется в объектном файле.
Последняя стадия – компоновка. Она заключается в связывании
всех объектных файлов проекта в один, связывании вызовов
функций с их определениями, и присоединением библиотечных
файлов, содержащих функции, которые вызываются, но не
определены в проекте. В результате формируется запускаемый
файл.
Все опции командной строки можно разделить на три
категории:
1. Специфичные к языку. Компилятор GCC разработан для
компиляции нескольких языков и некоторые опции применяются
только к одному или двум из них.
2. Специфичные к платформе. Как уже упоминалось выше,
компилятор GCC является абсолютным лидером по количеству
поддерживаемых платформ. Поэтому некоторые опции
применяются только когда создается объектный код для конкретной
целевой платформы. К примеру, если целевой платформой выбрана
Intel 386, для того чтобы определить, что числа с плавающей точкой,
возвращаемые вызываемыми функциями, должны сохраняться в
аппаратных регистрах с плавающей точкой может быть использован
Страницы
- « первая
- ‹ предыдущая
- …
- 28
- 29
- 30
- 31
- 32
- …
- следующая ›
- последняя »
