CC(I) 5/15/74 CC(I)
cc - C compiler
cc [ -c ] [ -p ] [ -O ] [ -S ] [ -P ] file ...
Cc is the UNIX C compiler. It accepts three types of
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
The following flags are interpreted by cc. See ld (I) for
-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
-P Run only the macro preprocessor on the named C
programs, and leave the output on corresponding files
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
file.c input file
file.o object file
a.out loaded output
/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
``Programming in C- a tutorial,'' C Reference Manual,
monitor (III), prof (I), cdb (I), ld (I).
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).