-c
Preprocess, compile, and assemble only (i.e., don't link).
-C
Leave comments in when preprocessing.
-D name[= definition]
Defines the symbol name.
-e name
Start program execution at name.
-E
Preprocess only; output to stdout, unless used with -o.
-ffast-math
Permit faster floating-point arithmetic methods at the cost of accuracy or precision.
-ffinite-math-only
Disregard infinities and NaN ("not a number") values.
-ffreestanding
Compile as a freestanding (not hosted) program.
-finline-functions, -fno-inline-functions
Enable/disable inline functions.
-fno-math-errno
Disable the errno variable for simple math functions.
-fno-trapping-math
Generate "nonstop" floating-point code.
-frounding-math
Don't disregard the rounding-mode features of the floating-point environment (experimental).
-fsignaling-nans
Allow all exceptions raised by signaling NaNs (experimental).
-fsyntax-only
Don't compile or link; just test input for syntax.
-funroll-loops, -fno-unroll-loops
Enable/disable loop optimization.
-funsafe-math-optimizations
Permit optimizations that don't conform to standards and/or don't verify values.
-fverbose-asm
Include C variable names as comments in assembly language.
-g[ format]
Compile for debugging.
-I directory[: directory[...]]
Search for "include" files in the specified path.
-I-
Distinguish between -Ipath for #include <file> and -Ipath for #include "file".
-l basename
Link with library libbasename.so or libbasename.a.
-L directory[: directory[...]]
Search for library files in the specified path.
-march= cpu
Intel x86: Generate model-specific code.
-mcpu= cpu
Sparc, ARM, and RS/6000-PowerPC: Generate model-specific code.
Intel x86: Optimize scheduling for the specified CPU model.
-mtune= cpu
Optimize scheduling for the specified CPU model.
-nostartfiles
Don't link startup code.
-nostdlib
Don't link with the standard library.
-o file
Direct output to the specified file.
-O0
Turn off all optimization options.
-O, -O1
Perform some optimization without taking much time.
-O2
Perform more optimization, including data flow analysis.
-O3
Perform still more optimization, including inline function compilation.
-Os
Optimize for size.
-p
Link in code to output profiling information.
-pedantic
Output warnings on nonstandard usage.
-pedantic-errors
Fail on nonstandard usage.
-pg
Link in code to output profiling information for gprof.
-s
Strip symbol tables from executable file.
-S
Preprocess and translate into assembly language only.
-save-temps
Save intermediate output files.
-shared
Create a shared object file for dynamic linking.
-static
Don't link to shared object files.
-std=iso9899:1990
-std=c89
-ansi
Support ISO/IEC 9899:1990.
-std=iso9899:199409
Support ISO/IEC 9899:1989 and AMD1.
-std=c99
Support ISO/IEC 9899:1999.
-std=gnu89
Like -ansi, plus GNU extensions (default).
-std=gnu99
Like -std=c99, plus GNU extensions.
-traditional
Support old-style C. Deprecated; supported only with -E.
-trigraphs
Support ISO C trigraphs.
-U name
"Undefine" the symbol name.
-v
Be verbose: print the options applied at each step of compiling.
--version
Output GCC version and license information.
-w
Disable all warnings.
-Wa, option[, option[...]]
Pass options to assembler command line.
-Wall
Output warnings about a broad range of problems in source code.
-Wl, option[, option[...]]
Pass options to linker command line.
-Werror
Fail on all warnings.
-Wextra
Output warnings about legal but questionable usage.
-Wtraditional
Warn about differences to old-style C.
-fmerge-constants
Put identical constants in a single location.
-x filetype
Treat subsequent files as being of the specified type.