pcpp - Man Page
front-end to the C compiler
Synopsis
cc | [-cEgkMPSstvX] [-ansi] [-Bprefix] [-D macro[=value]] [-dflags] [-f feature] [-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
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.
Referenced By
The man pages p++(1) and pcc(1) are aliases of pcpp(1).