Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

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)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=pcc&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>

home | help