Unix Man (Справочное руководство)


CC(1)


CC(1)

НАЗВАНИЕ


cc - компилятор языка C

СИНТАКСИС

cc [-c] [-p] [-g] [-O] [-L каталог] [-l библиотека] [-W фаза,арг1[,арг2 ...] [-S] [-E] [-P] [-H] [-D имя] [-U имя] [-I каталог] [-B цепочка_символов] [-t [p012al]] [-w] [-#] файл ...

ОПИСАНИЕ


Команда cc является командой вызова компилятора языка C, который генерирует ассемблерные инструкции. Команда cc принимает аргументы следующих типов:

Аргументы, оканчивающиеся на .c, интерпретируются как имена файлов, содержащих исходные тексты на языке C; они компилируются, и каждый об ектный модуль помещается в файл с именем, которое образуется из имени исходного файла замещением расширения .c на .o. Однако об ектный .o-файл обычно удаляется, если компилируется и одновременно загружается программа, состоящая из одного модуля. Аналогично, аргументы, оканчивающиеся на .s, интерпретируются как имена файлов, содержащих исходные тексты на языке ассемблера, и ассемблируются с образованием об ектных .o-файлов.

Командой cc интерпретируются следующие опции [см. также опции редактора связей и ассемблера ]:

-cОтменить фазу редактирования связей и создавать об'ектный файл даже в случае программы, состоящей только из одного модуля.
-pСгенерировать дополнительные команды для подсчета числа обращений к каждой функции. Кроме того, если имеет место фаза редактирования связей, стандартная подпрограмма инициализации заменяется на такую, которая автоматически вызывает функцию и обеспечивает запись файла mount.out при нормальном завершении об'ектной программы. Профиль выполнения программы может быть затем получен при помощи команды .
-gСгенерировать дополнительную информацию для отладчика .
Включить оптимизацию об ектного кода.
-L каталог

Дополнить каталогом список каталогов, которые содержат об ектные библиотечные модули [для редактирования связей посредством ].

-l библиотека

Скомпоновать с об ектной библиотекой [для ].

-W фаза,арг1[,арг2 ...]

Передать аргумент(ы) заданной фазе компиляции, где фаза - это один из символов [p012al], которые обозначают, соответственно, препроцессор, первый проход компилятора, второй проход компилятора, оптимизатор, ассемблер, редактор связей. Например, по опции -W,a,-m перед вызовом ассемблера будет вызван макропрепроцессор . Такая опция имеет смысл для файлов, содержащих ассемблерные вставки.

-SСкомпилировать указанные C-программы и поместить результат на языке ассемблера в соответствующие файлы с расширением .s (в этом случае об ектные модули не создаются).
-EУказанные C-программы обработать только препроцессором и результат направить на стандартный вывод.
-PУказанные C-программы обработать только препроцессором и результат поместить в соответствующие файлы с расширением .i.
-HВыдать в стандартный протокол составные имена всех участвующих в компиляции включаемых файлов.
-D имя

Определить имя для препроцессора. Этот механизм используется в условных директивах препроцессора, так как позволяет определять имена за пределами исходного текста.

-U имя

Сделать имя неопределенным для препроцессора.

-I каталог

Изменить алгоритм поиска включаемых (посредством директивы #include) файлов, имена которых не начинаются с символа /, а именно: сначала искать в указанном каталоге, а затем уже в каталогах стандартного списка. Так, включаемые файлы, чьи имена заданы в двойных кавычках, сначала ищутся в каталоге, содержащем файл, затем в каталогах, указанных с помощью опции -I, а затем уже в каталогах стандартного списка. Включаемые файлы, чьи имена заданы в угловых скобках, не ищутся в каталоге, содержащем файл.

-B цепочка_символов

Получать составные имена программ, заменяющих препроцессор, компилятор, ассемблер и редактор связей, путем конкатенации цепочки_символов с окончаниями cpp, c0, c1, optim, as и ld. Если цепочка_символов пуста, она трактуется как /lib/o.

-t [p012al]

В файлах, имена которых заданы с помощью опции -B, искать только требуемые компилятор, оптимизатор, ассемблер и редактор связей. Если отсутствует опция -B, то цепочка_символов берется равной /lib/n. Указание опции -t "" эквивалентно -t p012.

-wПодавить все предупреждающие сообщения.
-#Внутренний флаг отладки; выдавать название каждой выполняемой фазы компиляции. Если флаг задан дважды, то фазы не выполняются, а только распечатываются их названия.
<


- Начало -  - Назад -  - Вперед -