Scroll to navigation

CC(1) General Commands Manual CC(1)

NAME

ccfront-end to the C compiler

SYNOPSIS

cc [-cEgkLMPOStvXx] [-fPIC] [-fpic] [-moption] [-nostartfiles] [-nostdinc] [-nostdlib] [-pg] [-pthread] [-static] [-B prefix] [-D macro[=value]] [-d option] [-I directory] [-include path] [-isystem path] [-o outfile] [-Wl flags] [file ...]

DESCRIPTION

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 are passed via cpp(1)ccom(1)as(1)ld(1).

Filenames that end with are passed via ccom(1)as(1)ld(1).

Filenames that end with are passed via as(1)ld(1).

Filenames that end with are passed via cpp(1)as(1)ld(1).

Filenames that end with are passed directly to ld(1).

The options are as follows:

prefix
Define alternate prefix path for cpp(1), ccom(1), as(1), or ld(1) executables.
Passed to the cpp(1) preprocessor to not discard comments.
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.
macro[=value]
Passed to the cpp(1) preprocessor to define macro.
option
Passed to the as(1) assembler.
Stop after preprocessing with cpp(1). Do not compile, assemble, or link. Output is sent to standard output unless the -o option is used.
Generate PIC code.
Tells C compiler to generate PIC code and tells assembler that PIC code has been generated.
Send -g flag to ccom(1) to create debug output. This unsets the -O option.
path
Passed to the cpp(1) preprocessor to add header search directory to override system defaults.
file
Tells the cpp(1) preprocessor to include the file during preprocessing.
path
Defines path as a system header directory for the cpp(1) preprocessor.
Generate PIC code. See -fpic option.
TODO
Pass -M flag to cpp(1) to generate dependencies for make(1).
options
Target-dependent option.
ARM
-mlittle-endian -mbig-endian -mfpe=fpa -mfpe=vpf -msoft-float -march=armv1 -march=armv2 -march=armv2a -march=armv3 -march=armv4 -march=armv4t -march=armv4tej -march=armv5 -march=armv6 -march=armv6t2 -march=armv6kz -march=armv6k -march=armv7
HPPA
 
i386
 
MIPS
-mlittle-endian -mbig-endian -mhard-float -msoft-float
PDP-10
 
PowerPC
 
Sparc64
 
VAX
 
Do not link with the system startup files (crt0.c, etc.)
Do not use the system include paths (/usr/include, etc.)
Do not link with the system C library (libc).
Enable optimizations. Currently passes -xdeljumps and -xtemps to ccom(1). Note: this is unset if the -g option is used.
outfile
Save result to outfile.
TODO
Enable profiling on the generated executable.
Defines preprocessor directive for cpp(1). Uses for the ld(1) linker.
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.
Do not use dynamic linkage. By default, it will link using the dynamic linker options and/or shared objects for the platform.
Create a shared object of the result. Tells the linker not to generate an executable.
Passes -t to cpp(1) for traditional C preprocessor syntax.
macro
Passes to the cpp(1) preprocessor to remove the initial macro definition.
Outputs the version of cc and shows what commands will be run with their command line arguments.
flags
Options for the linker.
Don't remove temporary files on exit.
May be used to give separate optimization flags to ccom, see -O for options.
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).

__PCC__
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.
__PCC_MINOR__
Set to the minor version.
__PCC_MINORMINOR__
Set to the minor-minor version — the number after the minor version.
_PTHREADS
Defined when -pthread switch is used.

Also system- and/or machine-dependent macros may also be predefined; for example: __NetBSD__, __ELF__, and __i386__.

SEE ALSO

as(1), ccom(1), cpp(1), ld(1)

HISTORY

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.

September 14, 2007 Linux 6.13.6-1-default