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".  Mul-
       tiple 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  op-
	       tional 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  defini-
		  tions.

	       any unknown flags are ignored.

       -E      Stop  after  preprocessing with cpp(1).	Do not compile,	assem-
	       ble, 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  un-
	       signed  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 informa-
	       tion output can be disabled with	-g0.

       -I path
	       Passed to the cpp(1) preprocessor to add	header	search	direc-
	       tory to override	system defaults.

       -include	file
	       Tells  the  cpp(1) preprocessor to include the file during pre-
	       processing.

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

       -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) preproces-
	       sor, and	passes -xdce,  -xdeljumps,  -xtemps  and  -xinline  to
	       ccom(1).	  If  no  level	is given the optimization level	is in-
	       creased,	or optimizations 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 some-
	       thing 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.

       -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 lan-
	       guage	values	  are	 none,	  c,	c++,   assembler   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.

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

       This product includes software developed	or owned by  Caldera  Interna-
       tional, Inc.

FreeBSD	ports 15.0		 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.0>

home | help