Вперед Назад Содержание

1. Компиляция C, C++ или Objective C

C, C++ и Objective C версии компилятора объединены; компилятор GNU C может компилировать программы написанные на C, C++ или Objective C.

"GCC" - общее стандартное обозначение для компилятора GNU C. Это как наиболее общее название компилятора, так и название, используемое, когда акцент делается на компиляции C программ.

Когда ссылаются на C++ компиляцию, обычно называют компилятор "G++". Поскольку есть только один компилятор, будет точным называть его "GCC" вне зависимости от языка; однако термин "G++" более полезен, когда ударение стоит на компиляции С++ программ.

Мы используем имя "GNU CC" для ссылки на всю систему компиляции в целом и более конкретно к языковонезависимой части компилятора. Например, мы говорим об опциях оптимизации, как о влияющих на поведение "GNU CC" или, иногда, просто "компилятора".

Внешние интерфейсы с других языков, таких как Ada 9X, Fortran, Modula-3 и Pascal, находятся в развитии. Эти front end'ы, также как и front end с C++, построенны в поддиректориях GNU CC и связанны с ним. В результате получается интегрированный компилятор, который может компилировать программы написанные на C, C++, Objective C или на любых других языках, для которых вы установили внешние интерфейсы.

В данном руководстве мы рассматриваем только опции для C, Objective C и C++ компиляторов, а также опции ядра GNU CC. Обращайтесь к документации по другим внешним интерфейсам, чтобы узнать об опциях, используемых при компиляции программ, написанных на других языках.

G++ - это компилятор, а не просто препроцессор. G++ строит объектный код прямо из вашей исходной C++ программы. Никакой промежуточной C версии программы не порождается. (К примеру, некоторые другие реализации напротив используют программу, которая порождает C программу из вашей C++ программы.) Избегание промежуточного C представления программы означает, что вы получаете более хороший объектный код и более хорошую отладочную информацию. Отладчик GNU, GDB, использует эту информацию в объектном коде, чтобы дать вам все возможности работы на уровне исходного C++ текста (см. раздел "C и C++" в "Отладка с GDB").


Вперед Назад Содержание