Manual Page Result
0
Command: cc | Section: 1 | Source: UNIX v7 | File: cc.1
CC(1) General Commands Manual CC(1)
NAME
cc, pcc - C compiler
SYNOPSIS
cc [ option ] ... file ...
pcc [ option ] ... file ...
DESCRIPTION
Cc is the UNIX C compiler. It accepts several 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.
In the same way, arguments whose names end with `.s' are taken to be
assembly source programs and are assembled, producing a `.o' file.
The following options are interpreted by cc. See ld(1) for load-time
options.
-c Suppress the loading phase of the compilation, and force an ob-
ject file to be produced even if only one program is compiled.
-p Arrange for the compiler to produce code which counts the num-
ber of times each routine is called; also, if loading takes
place, replace the standard startup routine by one which auto-
matically calls monitor(3) 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(1).
-f In systems without hardware floating-point, use a version of
the C compiler which handles floating-point constants and loads
the object program with the floating-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 and place the result for each
`.c' file in a corresponding `.i' file and has no `#' lines in
it.
-E Run only the macro preprocessor and send the result to the
standard output. The output is intended for compiler debug-
ging; it is unacceptable as input to cc.
-o output
Name the final output file output. If this option is used the
file `a.out' will be left undisturbed.
-Dname=def
-Dname Define the name to the preprocessor, as if by `#define'. If no
definition is given, the name is defined as 1.
-Uname Remove any initial definition of name.
-Idir `#include' files whose names do not begin with `/' are always
sought first in the directory of the file argument, then in di-
rectories named in -I options, then in directories on a stan-
dard list.
-Bstring
Find substitute compiler passes in the files named string with
the suffixes cpp, c0, c1 and c2. If string is empty, use a
standard backup version.
-t[p012]
Find only the designated compiler passes in the files whose
names are constructed by a -B option. In the absence of a -B
option, the string is taken to be `/usr/c/'.
Other arguments are taken to be either loader option 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 or-
der given) to produce an executable program with name a.out.
The major purpose of the `portable C compiler', pcc, is to serve as a
model on which to base other compilers. Pcc does not support options
-f, -E, -B, and -t. It provides, in addition to the language of cc,
unsigned char type data and initialized bit fields.
FILES
file.c input file
file.o object file
a.out loaded output
/tmp/ctm? temporaries for cc
/lib/cpp preprocessor
/lib/c[01] compiler for cc
/usr/c/oc[012] backup compiler for cc
/usr/c/ocpp backup preprocessor
/lib/fc[01] floating-point compiler
/lib/c2 optional optimizer
/lib/crt0.o runtime startoff
/lib/mcrt0.o startoff for profiling
/lib/fcrt0.o startoff for floating-point interpretation
/lib/libc.a standard library, see intro(3)
/usr/include standard directory for `#include' files
/tmp/pc* temporaries for pcc
/usr/lib/ccom compiler for pcc
SEE ALSO
B. W. Kernighan and D. M. Ritchie, The C Programming Language, Pren-
tice-Hall, 1978
D. M. Ritchie, C Reference Manual
monitor(3), prof(1), adb(1), ld(1)
DIAGNOSTICS
The diagnostics produced by C itself are intended to be self-explana-
tory. Occasional messages may be produced by the assembler or loader.
Of these, the most mystifying are from the assembler, as(1), in partic-
ular `m', which means a multiply-defined external symbol (function or
data).
BUGS
Pcc is little tried on the PDP11; specialized code generated for that
machine has not been well shaken down. The -O optimizer was designed
to work with cc; its use with pcc is suspect.
PDP11 CC(1)