home | help
CC(1)			     General Commands Manual			   CC(1)

NAME
     cc -- front-end to the C compiler

SYNOPSIS
     cc [-cEgkMPStvX] [-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] [-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 mul-
	     tiple 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 run-
	     time 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 prepro-
	     cessing.

     -isystem path
	     Defines path as a system header directory for the cpp(1) preproces-
	     sor.

     -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  increased,  or  optimiza-
	     tions can be disabled using -O0.

     -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  file-
	     name 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 gen-
	     erate an executable.

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

     -t      Passed to cpp(1) to suppress some default macro definitions and en-
	     able use of traditional C preprocessor syntax.

     -U macro
	     Passes to the cpp(1) preprocessor to remove the initial macro defi-
	     nition.

     -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 val-
	     ues  are  none,  c, c++, assembler and assembler-with-cpp.  Any un-
	     known -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.

     __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.  John-
     son, written in the late 70's.

     This product includes software developed or owned by Caldera International,
     Inc.

FreeBSD ports 15.quarterly	  June 20, 2014 			   CC(1)

home | help