Man page - pcpp(1)
Packages contains this manual
Manual
CC (1) General Commands Manual CC (1)
NAME
cc — front-end to the C compiler
SYNOPSIS
cc [ -cEgkMPSstvX ] [ -ansi ] [ -B prefix ] [ -D macro [
=
value
]] [
-d
flags
]
[
-f
feature
] [
-I
path
]
[
-include
file
]
[
-isystem
path
] [
-L
path
]
[
-m
option
] [
-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 .
-B prefix
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 .
-d flags
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.
-L path
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).
-m option
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 -x assembler-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. Debian June 20, 2014 CC (1)