Scientific Operations



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



NAME
     cc - C compiler

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

DESCRIPTION
     Cc  is the UNIX C compiler.  It accepts three types of argu-
     ments:

     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'  sub-
     stituted  for `.c'.  The `.o' file is normally deleted, how-
     ever, 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 rou-
           tine by one which automatically calls the monitor sub-
           routine(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 gen-
           erated by use of prof(I).

      -f   In systems without hardware floating-point, use a ver-
           sion of the C compiler  which  handles  floating-point
           constants and loads the object program with the float-
           ing-point interpreter.  Do not use if the hardware  is
           present.

      -O   Invoke an 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 pro-
           grams, and leave the  output  on  corresponding  files
           suffixed `.i'.

     Other  arguments  are  taken  to be either loader flag argu-
     ments, 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.



                              - 1 -




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


FILES
     file.c          input file
     file.o          object file
     a.out           loaded output
     /tmp/ctm?       temporary
     /lib/c[01]      compiler
     /lib/fc[01]     floating-point compiler
     /lib/c2         optional optimizer
     /lib/crt0.o     runtime startoff
     /lib/mcrt0.o    runtime startoff of profiling
     /lib/fcrt0.o    runtime startoff for  floating-point  inter-
     pretation
     /lib/libc.a     C library; see section III.
     /lib/liba.a     Assembler  library  used by some routines in
     libc.a

SEE ALSO
     ``Programming in C-- a tutorial,'' C Reference Manual, moni-
     tor(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  mul-
     tiply-defined external symbol (function or data).

BUGS






























                              - 2 -