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