mark.zlatoust.ru Послать письмо Webmaster-у Web-Master © Бернадинер Марк 

Златоуст.Ru

 

 

      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 интерпретируются следующие опции [см. также
              опции редактора связей ld(1) и ассемблера as(1)]:

              -c   Отменить фазу редактирования  связей  и  создавать
                   об ектный файл даже в случае программы,  состоящей
                   только из одного модуля.

              -p   Сгенерировать  дополнительные команды для подсчета
                   числа обращений к каждой функции. Кроме того, если
                   имеет место фаза редактирования связей,  стандарт-
                   ная  подпрограмма  инициализации заменяется на та-
                   кую,  которая   автоматически   вызывает   функцию
                   monitor(3C)  и обеспечивает запись файла mount.out
                   при  нормальном  завершении  об ектной  программы.
                   Профиль  выполнения программы может быть затем по-
                   лучен при помощи команды prof(1).

              -g   Сгенерировать дополнительную информацию для отлад-
                   чика sdb(1).

              -О   Включить оптимизацию об ектного кода.

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

              -l библиотека
                   Скомпоновать с об ектной библиотекой [для ld(1)].

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

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

              -E   Указанные C-программы обработать только препроцес-
                   сором cpp(1) и результат направить на  стандартный
                   вывод.

              -P   Указанные C-программы обработать только препроцес-
                   сором cpp(1) и результат поместить в соответствую-
                   щие файлы с расширением .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   Подавить все предупреждающие сообщения.

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

              Остальные аргументы рассматриваются как опции редактора
              связей, имена об ектных модулей, совместимых с  C-прог-
              раммами (обычно эти модули получены в результате  пред-
              шествующих запусков компилятора), или, возможно, библи-
              отек C-совместимых программ. Эти  программы,  вместе  с
              результатами текущей компиляции, обрабатываются  редак-
              тором связей, и созданная выполняемая  программа,  если
              не указана опция редактора связей -o, помещается в файл
              a.out.

              С  появлением  версии 5 операционной системы UNIX стан-
              дарт языка C был расширен. Теперь имена переменных  мо-
              гут иметь произвольную длину. Этот стандарт поддержива-
              ется  на компьютерах семейства M68000. Опция -T застав-
              ляет компилятор обрезать длинные имена для  обеспечения
              совместимости с более ранними версиями.

      ОКРУЖЕНИЕ
              SHLIB
                   Если SHLIB имеет значение YES, будет использовать-
                   ся разделяемая версия библиотеки libc.

              STACKCHECK
                   Если STACKCHECK имеет значение ON, порождаются ко-
                   манды для контроля стека.

              DBLALIGN
                   Если  DBLALIGN имеет значение YES, переменные раз-
                   мещаются с границы 32-битного  слова,  иначе  -  с
                   границы 16-битного слова.

              STALIGN
                   Если  и STALIGN, и DBLALIGN имеют значение YES, то
                   компоненты структур будут  размещаться  с  границы
                   32-битного  слова (по умолчанию, с границы 16-бит-
                   ного слова).

              FP   Если переменная FP имеет значение M68881, компиля-
                   тор   генерирует   инструкции   для   сопроцессора
                   MC68881,  поддерживающего  арифметику вещественных
                   чисел. Если результат какой-либо функции  является
                   вещественным,  он  возвращается  только в регистре
                   %fp0. Если переменная FP равна M68881u, веществен-
                   ные значения возвращаются еще и в  регистрах  %d0/
                   %d1 для совместимости со старыми библиотеками.

              Компилятор выбирает  соответствующие  версии  библиотек
              libc  и libm согласно значениям переменных окружения FP
              и SHLIB.

      ФАЙЛЫ
              файл.c            Исходный файл.
              файл.o            Об ектный файл.
              файл.s            Ассемблерный файл.
              a.out             Результат работы редактора связей.
              /usr/tmp/ctm*     Временные файлы.
              /lib/cpp          Препроцессор.
              /lib/c[01]        Две фазы компиляции.
              /lib/optim        Оптимизатор.
              /bin/as           Ассемблер as(1).
              /bin/ld           Редактор связей ld(1).
              /lib/crt1.o
              /lib/crtn.o       Стандартная программа инициализации.
              /lib/mcrt0.o      Программа  инициализации профилирова-
                                ния.
              /lib/libc.a       Стандартная библиотека, см. раздел 3.
              /lib/libm.a       Математическая библиотека, см. раздел
                                3.
              /lib/lib*_s.a     Разделяемые версии библиотек.
              /lib/lib*881.a    Версии   библиотек  для  сопроцессора
                                арифметики вещественных чисел.
              /lib/lib*881u.a   Универсальные версии библиотек.
              /usr/lib/libp/*.a Версии библиотек для профилирования.

      СМ. ТАКЖЕ
              as(1), cpp(1), ld(1), prof(1), sdb(1).

      ДИАГНОСТИКА
              Диагностика, вырабатываемая компилятором языка C, может
              быть иногда не очень ясной. Некоторые  сообщения  могут
              быть выданы ассемблером или редактором связей.

      ПРЕДОСТЕРЕЖЕНИЯ
              По умолчанию значение, возвращаемое из C-программы, яв-
              ляется  абсолютно  случайным.  Есть  только два способа
              возвратить определенное значение - явно воспользоваться
              системным вызовом exit [см. exit(2)] или выйти из функ-
              ции main( ) с помощью конструкции return выражение.



 

 

Бернадинер Марк Абрамович

Мое резюме

Компьютерная страничка

Ресурсы сети

Фотоальбом

 

 

 

mark.zlatoust.ru Послать письмо Webmaster-у Web-Master © Бернадинер Марк