p++ - front-end to the C compiler


CC(1) General Commands Manual CC(1)

NAME

cc — front-end to the C compiler

SYNOPSIS

cc [−cEgkMPSstvX] [−ansi] [−Bprefix] [−D macro[

=value ]] [−dflags] [−ffeature] [−I path] [−include file] [−isystem path] [−Lpath] [−moption] [−nodefaultlibs] [−nostartfiles] [−nostdinc] [−nostdlib] [−O[
level
]] [−o outfile] [−pg] [−pthread] [−shared] [−static] [−std=standard] [−U macro] [−Wa,options] [−Wc,options] [−Wl,options] [−Wp,options] [−x language] [−z keyword] [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 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:

−ansi

Synonym for −std=c89.

−Bprefix

Define alternate prefix path for cpp(1), ccom(1), as(1), or ld(1) executables.

−C

Passed to the cpp(1) preprocessor to not discard comments.

−c

Stop after generating object code with as(1). 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 with an optional value.

−dflags

Debug options. flags is a string of characters, which signify the following actions.

M

Cause the preprocessor to output a list of macro definitions.

any unknown flags are ignored.

−E

Stop after preprocessing with cpp(1). Do not compile, assemble, or link. Output is sent to standard output unless the −o option is used.

−ffreestanding

Assume a freestanding environment.

−fPIC

Generate PIC code.

−fpic

Tells C compiler to generate PIC code and tells assembler that PIC code has been generated.

−funsigned-char

Tell the compiler to treat ‘char’ types as if they were unsigned unless explicitly defined otherwise. −fsigned-char can be used to signify the opposite behaviour. The default for the ‘char’ type depends on the compiler target architecture.

−fstack-protector

Tell the compiler to wrap functions with code which checks at runtime that a stack overflow has not occurred. When stack protection is in effect, the __SSP__ macro will be defined.

−g

Send −g flag to ccom(1) to create debug output. Debug information output can be disabled with −g0.

−I path

Passed to the cpp(1) preprocessor to add header search directory to override system defaults.

−include file

Tells the cpp(1) preprocessor to include the file during preprocessing.

−isystem path

Defines path as a system header directory for the cpp(1) preprocessor.

−k

Generate PIC code. See −fpic option.

−Lpath

Passed to the linker, to add path to the list of directories searched for shared libraries.

−M

Pass −M flag to cpp(1) to generate dependencies for make(1).

−moption

Target-dependent options. Multiple −m options can be given, the following are supported:

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
−nodefaultlibs

Do not link with the system default libraries (libc, etc.)

−nostartfiles

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 default libraries or startup files.

−O[
level
]

Enable compiler optimizations. Currently, for levels higher than zero, this defines __OPTIMIZE__ in the cpp(1) preprocessor, and passes −xdce, −xdeljumps, −xtemps and −xinline to ccom(1). If no level is given the optimization level is −O1. Optimizations can be disabled using −O0. In situations where multiple optimization flags are given, the last flag is the one used.

−o outfile

Save result to outfile.

−P

Inhibit generation of line markers in preprocessor output. This is sometimes useful when running the preprocessor on something other than C code.

−pg

Enable profiling on the generated executable.

−pthread

Defines the _PTHREADS preprocessor identifier for cpp(1), and adds −lpthread to the ld(1) linker arguments.

−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.

−s

Passed to ld(1) to remove all symbol table and relocation information from the generated executable. This option is silently ignored if cc does not invoke the linker.

−shared

Create a shared object of the result. Tells the linker not to generate an executable.

−static

Do not use dynamic linkage. By default, it will link using the dynamic linker options and/or shared objects for the platform.

−std=standard

Compile to the specified standard. Accepted values for standard are c89, c99, gnu89, gnu99, gnu9x, and c11.

−t

Passed to cpp(1) to suppress some default macro definitions and enable use of 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 commands as they are run with their command line arguments.

−###

As per −v except that the commands are not run, and the arguments will be quoted if they contain unusual characters or spaces.

−Wa,options

Comma separated list of options for the assembler.

−Wc,options

Comma separated list of options for the compiler.

−Wl,options

Comma separated list of options for the linker.

−Wp,options

Comma separated list of options for the preprocessor.

−X

Don’t remove temporary files on exit.

−x language

GCC compatibility option; specify the language in use rather than interpreting the filename extension. Currently known language values are none, c, c++, assembler and assembler-with-cpp. Any unknown −x options are passed to ccom(1).

−z keyword

Passed to ld(1). Please refer to the documentation of your linker for acceptable values of keyword.

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.

__ASSEMBLER__  Defined when input files have a .S suffix, or if the −xassembler-with-cpp option is specified.

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. GNU June 20, 2014 CC(1)


Updated 2024-01-29 - jenkler.se | uex.se