FreeBSD Manual Pages
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)
NAME | SYNOPSIS | DESCRIPTION | SEE ALSO | HISTORY
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>
