The
cc
utility provides a front-end to the
portable C compiler.
Multiple files may be given on the command line.
Unrecognized options are all sent directly to
ld(1).
Filenames that end with
\&.c
are passed via
cpp(1)
\(->
ccom(1)
\(->
as(1)
\(->
ld(1).
Filenames that end with
\&.i
are passed via
ccom(1)
\(->
as(1)
\(->
ld(1).
Filenames that end with
\&.s
are passed via
as(1)
\(->
ld(1).
Filenames that end with
\&.S
are passed via
cpp(1)
\(->
as(1)
\(->
ld(1).
Filenames that end with
\&.o
are passed directly to
ld(1).
The options are as follows:
Passed to the
cpp(1)
preprocessor to not discard comments.
-c
Only compile or assemble and then stop.
Do not link.
The resulting object output is saved
as a filename with a
\&.o
suffix unless
-o
option is used.
Note: cannot be combined with
-o
if multiple files are given.
-D macro[=value]
Passed to the
cpp(1)
preprocessor to define
macro.
Do not link with the system startup files (crt0.c, etc.)
-nostdinc
Do not use the system include paths (/usr/include, etc.)
-nostdlib
Do not link with the system C library (libc).
-O
Enable optimizations.
Currently passes
-xdeljumps
and
-xtemps
to
ccom(1).
Note: this is unset if the
-g
option is used.
-o outfile
Save result to
outfile.
-P
TODO
-pg
Enable profiling on the generated executable.
-pthread
Defines
_PTHREADS
preprocessor directive for
cpp(1).
Uses
\-lpthread
for the
ld(1)
linker.
-S
Stop after compilation by
ccom(1).
Do not assemble and do not link.
The resulting assembler-language output is saved
as a filename with a
\&.s
suffix unless the
-o
option is used.
Note: cannot be combined with
-o
if multiple files are given.
-static
Do not use dynamic linkage.
By default, it will link using the dynamic linker options
and/or shared objects for the platform.
-shared
Create a shared object of the result. Tells the linker not to
generate an executable.
-t
Passes
-t
to
cpp(1)
for traditional C preprocessor syntax.
-U macro
Passes to the
cpp(1)
preprocessor to remove the initial macro definition.
-v
Outputs the version of
cc
and shows what commands will be run with their command line arguments.
-Wl flags
Options for the linker.
-X
Don't remove temporary files on exit.
-x
May be used to give separate optimization flags to ccom, see
-O
for options.
-x c
Gcc compatibility option; specify that the language in use is
c.
Predefined Macros
A few
macros are predefined by
cc
when sent to
cpp(1).
Set to the major version of
pcc(1).
These macros can be used to select code based on
pcc(1)
compatibility.
See the
-v
option.
Set to the minor version.
Set to the minor-minor version \(em the number after the minor version.
Defined when
-pthread
switch is used.
Also system- and/or machine-dependent macros may also be predefined;
for example:
__NetBSD__,
__ELF__,
and
__i386__.
The
cc
command comes from the original Portable C Compiler by S. C. Johnson,
written in the late 70's.
This product includes software developed or owned by Caldera
International, Inc.