CC(I)                        5/15/74                        CC(I)







NAME

     cc - C compiler



SYNOPSIS

     cc [ -c ] [ -p ] [ -O ] [ -S ] [ -P ] file ...



DESCRIPTION

     Cc is the UNIX  C  compiler.   It  accepts  three  types  of

     arguments:



     Arguments whose names end with `.c' are taken to be C source

     programs; they are compiled, and each object program is left

     on the file whose name is  that  of  the  source  with  `.o'

     substituted  for  `.c'.   The `.o' file is normally deleted,

     however, if a single C program is compiled and loaded all at

     one go.



     The following flags are interpreted by cc.  See ld  (I)  for

     load-time flags.



      -c    Suppress the loading phase of  the  compilation,  and

           force  an  object file to be produced even if only one

           program is compiled.



      -p    Arrange for the compiler to produce code which counts

           the  number  of times each routine is called; also, if

           loading takes  place,  replace  the  standard  startup

           routine  by  one which automatically calls the monitor

           subroutine (III) at the start and  arranges  to  write

           out  a mon.out file at normal termination of execution

           of the object program.  An execution profile can  then

           be generated by use of prof (I).



      -O    Invoke the experimental object-code optimizer.



      -S    Compile  the  named  C  programs,   and   leave   the

           assembler-language   output   on  corresponding  files

           suffixed `.s'.



      -P    Run only  the  macro  preprocessor  on  the  named  C

           programs,  and leave the output on corresponding files

           suffixed `.i'.



     Other  arguments  are  taken  to  be  either   loader   flag

     arguments,   or   C-compatible  object  programs,  typically

     produced by an earlier cc run, or perhaps  libraries  of  C-

     compatible  routines.   These  programs,  together  with the

     results of any compilations specified, are  loaded  (in  the

     order  given)  to  produce  an  executable program with name

     a.out.



FILES

     file.c          input file

     file.o          object file

     a.out           loaded output

     /tmp/ctm?       temporary

     /lib/c[01]      compiler

     /lib/c2         optional optimizer

     /lib/crt0.o     runtime startoff

     /lib/mcrt0.o    runtime startoff of monitoring

     /lib/libc.a     builtin functions, etc.

     /lib/liba.a     system library



SEE ALSO

     ``Programming  in  C-  a  tutorial,''  C  Reference  Manual,

     monitor (III), prof (I), cdb (I), ld (I).



DIAGNOSTICS

     The diagnostics produced by C  itself  are  intended  to  be

     self-explanatory.   Occasional  messages  may be produced by

     the assembler or loader.  Of these, the most mystifying  are

     from  the  assembler,  in  particular  ``m,''  which means a

     multiply-defined external symbol (function or data).



BUGS