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