Введение в разработку приложений на платформе Atom/MeeGo для нетбуков и планшетников. Граничин О.Н - 30 стр.

UptoLike

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