pcc(1) - Linux man page

Name

cc - front-end to the C compiler

Synopsis

cc [-cEgkLMPStvX] [-Bprefix] [-D macro[

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

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

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

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

-L' TODO

-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 -xdeljumps, -xtemps and -xinline to ccom(1). If no level is given the optimization level is increased, or optimizations can be disabled using -O0.

-o outfile
Save result to outfile.

-P' TODO

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

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

-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 what commands will be run with their command line arguments.

-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 c, c++ and assembler-with-cpp. Any unknown -x options are passed to ccom(1).

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.

BSD November 11, 2011 BSD

Referenced By

pcc-cpp(1)