Alphabetical List of Compiler Options

The following table lists all the current compiler options in alphabetical order.

ansi

Enables language compatibility with the gcc option ansi.

B

Specifies a directory that can be used to find include files, libraries, and executables.

C

Places comments in preprocessed source output.

c

Prevents linking.

D

Defines a macro name that can be associated with an optional value.

daal, Qdaal

Tells the compiler to link to certain libraries in the Intel® oneAPI Data Analytics Library ( oneDAL ) .

dD, QdD

Same as option -dM, but outputs #define directives in preprocessed source.

device-math-lib

Enables or disables certain device libraries.

dM, QdM

Tells the compiler to output macro definitions in effect after preprocessing.

dumpmachine

Displays the target machine and operating system configuration.

dumpversion

Displays the version number of the compiler.

E

Causes the preprocessor to send output to stdout.

EH

Specifies the model of exception handling to be performed.

EP

Causes the preprocessor to send output to stdout, omitting #line directives.

Fa

Specifies that an assembly listing file should be generated.

FA

Specifies the contents of an assembly listing file.

fasm-blocks

Enables the use of blocks and entire functions of assembly code within a C or C++ file.

fasynchronous-unwind-tables

Determines whether unwind information is precise at an instruction boundary or at a call boundary.

fbuiltin, Oi

Enables or disables inline expansion of intrinsic functions.

FC

Displays the full path of source files passed to the compiler in diagnostics.

fcommon

Determines whether the compiler treats common symbols as global definitions.

FD

Generates file dependencies related to the Microsoft* C/C++ compiler.

Fd

Lets you specify a name for a program database (PDB) file created by the compiler.

Fe

Specifies the name for a built program or dynamic-link library.

fexceptions

Enables exception handling table generation.

ffreestanding

Ensures that compilation takes place in a freestanding environment.

ffunction-sections

Places each function in its own COMDAT section.

fgnu89-inline

Tells the compiler to use C89 semantics for inline functions when in C99 mode.

finline-functions

Enables function inlining for single file compilation.

finline

Tells the compiler to inline functions declared with __inline and perform C++ inlining .

fintelfpga

Lets you perform ahead-of-time (AOT) compilation with the Flexible Programmable Gate Array (FPGA).

FI

Tells the preprocessor to include a specified file name as the header file.

fjump-tables

Determines whether jump tables are generated for switch statements.

fkeep-static-consts

Tells the compiler to preserve allocation of variables that are not referenced in the source.

fmath-errno

Tells the compiler that errno can be reliably tested after calls to standard math library functions.

fno-gnu-keywords

Tells the compiler to not recognize typeof as a keyword.

fno-operator-names

Disables support for the operator names specified in the standard.

fno-rtti

Disables support for run-time type information (RTTI).

foffload-static-lib

Tells the compiler to link with a fat (multi-architecture) static library.

fomit-frame-pointer

Determines whether EBP is used as a general-purpose register in optimizations.

foptimize-sibling-calls

Determines whether the compiler optimizes tail recursive calls.

Fo

Specifies the name for an object file.

fpack-struct

Specifies that structure members should be packed together.

fpermissive

Tells the compiler to allow for non-conformant code.

fpic

Determines whether the compiler generates position-independent code.

fpie

Tells the compiler to generate position-independent code. The generated code can only be linked into executables.

Fp

Lets you specify an alternate path or file name for precompiled header files.

fshort-enums

Tells the compiler to allocate as many bytes as needed for enumerated types.

fstack-protector

Enables or disables stack overflow security checks for certain (or all) routines.

fsycl-add-targets

Lets you add arbitrary device binary images to the fat SYCL* binary when linking.

fsycl-device-only

Tells the compiler to generate a device-only binary.

fsycl

Enables a program to be compiled as a SYCL* program rather than as plain C++11 program.

fsycl-link-targets

Tells the compiler to link only device code.

fsycl-link

Tells the compiler to perform a partial link of device binaries to be used with Flexible Programmable Gate Array (FPGA).

fsycl-targets

Tells the compiler to generate code for specified devices.

fsycl-unnamed-lambda

Enables unnamed SYCL* lambda kernels.

fsycl-use-bitcode

Tells the compiler to produce device code in LLVM IR bitcode format into fat objects.

fsyntax-only

Tells the compiler to check only for correct syntax.

ftrapuv

Initializes stack local variables to an unusual value to aid error detection.

funsigned-char

Change default char type to unsigned.

fuse-ld

Tells the compiler to use a different linker instead of the default linker (ld).

fverbose-asm

Produces an assembly listing with compiler comments, including options and version information.

fzero-initialized-in-bss, Qzero-initialized-in-bss

Determines whether the compiler places in the DATA section any variables explicitly initialized with zeros.

g

Tells the compiler to generate a level of debugging information in the object file.

GA

Enables faster access to certain thread-local storage (TLS) variables.

Gd

Makes __cdecl the default calling convention.

gdwarf

Lets you specify a DWARF Version format when generating debug information.

GF

Enables read-only string-pooling optimization.

Gm

Enables a minimal rebuild.

grecord-gcc-switches

Causes the command line options that were used to invoke the compiler to be appended to the DW_AT_producer attribute in DWARF debugging information.

GR

Enables or disables C++ Run Time Type Information (RTTI).

GS

Determines whether the compiler generates code that detects some buffer overruns.

Gs

Lets you control the threshold at which the stack checking routine is called or not called.

gsplit-dwarf

Creates a separate object file containing DWARF debug information.

guard

Enables the control flow protection mechanism.

Gv

Tells the compiler to use the vector calling convention (__vectorcall) when passing vector type arguments.

Gy

Separates functions into COMDATs for the linker.

H, QH

Tells the compiler to display the include file order and continue compilation.

help

Displays all available compiler options or a category of compiler options.

I

Specifies an additional directory to search for include files.

I-

Splits the include path.

idirafter

Adds a directory to the second include file search path.

imacros

Allows a header to be specified that is included in front of the other headers in the translation unit.

ipo, Qipo

Enables interprocedural optimization between files.

ipp, Qipp

Tells the compiler to link to the some or all of the Intel® Integrated Performance Primitives (Intel® IPP) libraries.

ipp-link, Qipp-link

Controls whether the compiler links to static or dynamic threaded Intel® Integrated Performance Primitives (Intel® IPP) run-time libraries.

iprefix

Lets you indicate the prefix for referencing directories that contain header files.

iquote

Adds a directory to the front of the include file search path for files included with quotes but not brackets.

isystem

Specifies a directory to add to the start of the system include path.

iwithprefix

Appends a directory to the prefix passed in by -iprefix and puts it on the include search path at the end of the include directories.

iwithprefixbefore

Similar to -iwithprefix except the include directory is placed in the same place as -I command-line include directories.

J

Sets the default character type to unsigned.

Kc++, TP

Tells the compiler to process all source or unrecognized file types as C++ source files.

l

Tells the linker to search for a specified library when linking.

L

Tells the linker to search for libraries in a specified directory before searching the standard directories.

LD

Specifies that a program should be linked as a dynamic-link (DLL) library.

link

Passes user-specified options directly to the linker at compile time.

M, QM

Tells the compiler to generate makefile dependency lines for each source file.

m64

Tells the compiler to generate code for a specific architecture.

m80387

Specifies whether the compiler can use x87 instructions.

march

Tells the compiler to generate code for processors that support certain features.

masm

Tells the compiler to generate the assembler output file using a selected dialect.

mcmodel

Tells the compiler to use a specific memory model to generate code and store data.

MD, QMD

Preprocess and compile, generating output file containing dependency information ending with extension .d.

MD

Tells the linker to search for unresolved references in a multithreaded, dynamic-link run-time library.

MF, QMF

Tells the compiler to generate makefile dependency information in a file.

MG, QMG

Tells the compiler to generate makefile dependency lines for each source file.

mintrinsic-promote, Qintrinsic-promote

Enables functions containing calls to intrinsics that require a specific CPU feature to have their target architecture automatically promoted to allow the required feature.

mkl, Qmkl

Tells the compiler to link to certain libraries in the Intel® oneAPI Math Kernel Library ( oneMKL ) . On Windows systems, you must specify this option at compile time.

MM, QMM

Tells the compiler to generate makefile dependency lines for each source file.

MMD, QMMD

Tells the compiler to generate an output file containing dependency information.

momit-leaf-frame-pointer

Determines whether the frame pointer is omitted or kept in leaf functions.

MP

Tells the compiler to add a phony target for each dependency.

MQ

Changes the default target rule for dependency generation.

MT, QMT

Changes the default target rule for dependency generation.

MT

Tells the linker to search for unresolved references in a multithreaded, static run-time library.

nodefaultlibs

Prevents the compiler from using standard libraries when linking.

nologo

Tells the compiler to not display compiler version information.

nostartfiles

Prevents the compiler from using standard startup files when linking.

nostdinc++

Do not search for header files in the standard directories for C++, but search the other standard directories.

nostdlib

Prevents the compiler from using standard libraries and startup files when linking.

O

Specifies the code optimization for applications.

o

Specifies the name for an output file.

Od

Disables all optimizations.

Ofast

Sets certain aggressive options to improve the speed of your application.

Os

Enables optimizations that do not increase code size; it produces smaller code size than O2.

Ot

Enables all speed optimizations.

Ox

Enables maximum optimizations.

P

Tells the compiler to stop the compilation process and write the results to a file.

pie

Determines whether the compiler generates position-independent code that will be linked into an executable.

print-multi-lib

Prints information about where system libraries should be found.

pthread

Tells the compiler to use pthreads library for multithreading support.

Qcxx-features

Enables standard C++ features without disabling Microsoft* features.

Qpatchable-addresses

Tells the compiler to generate code such that references to statically assigned addresses can be patched.

regcall, Qregcall

Tells the compiler that the __regcall calling convention should be used for functions that do not directly specify a calling convention.

RTC

Enables checking for certain run-time conditions.

S

Causes the compiler to compile to an assembly file only and not link.

save-temps

Tells the compiler to save intermediate files created during compilation.

shared-libgcc

Links the GNU libgcc library dynamically.

shared

Tells the compiler to produce a dynamic shared object instead of an executable.

showIncludes

Tells the compiler to display a list of the include files.

static-libgcc

Links the GNU libgcc library statically.

static-libstdc++

Links the GNU libstdc++ library statically.

static

Prevents linking with shared libraries.

std

Tells the compiler to conform to a specific language standard.

sysroot

Specifies the root directory where headers and libraries are located.

T

Tells the linker to read link commands from a file.

tbb, Qtbb

Tells the compiler to link to the Intel® oneAPI Threading Building Blocks ( oneTBB ) libraries.

Tc

Tells the compiler to process a file as a C source file.

TC

Tells the compiler to process all source or unrecognized file types as C source files.

Tp

Tells the compiler to process a file as a C++ source file.

U

Undefines any definition currently in effect for the specified macro .

u (Linux*)

Tells the compiler the specified symbol is undefined.

undef

Disables all predefined macros .

unroll

Tells the compiler the maximum number of times to unroll loops.

use-msasm

Enables the use of blocks and entire functions of assembly code within a C or C++ file.

v

Specifies that driver tool commands should be displayed and executed.

vd

Enables or suppresses hidden vtordisp members in C++ objects.

version

Tells the compiler to display GCC-style version information.

vmg

Selects the general representation that the compiler uses for pointers to members.

vmv

Enables pointers to members of any inheritance type.

w, W

Specifies the level of diagnostic messages to be generated by the compiler.

w

Disables all warning messages.

Wabi

Determines whether a warning is issued if generated code is not C++ ABI compliant.

Wall

Enables warning and error diagnostics.

Wa

Passes options to the assembler for processing.

Wcomment

Determines whether a warning is issued when /* appears in the middle of a /* */ comment.

Wdeprecated

Determines whether warnings are issued for deprecated C++ headers.

Weffc++, Qeffc++

Enables warnings based on certain C++ programming guidelines.

Werror, WX

Changes all warnings to errors.

Werror-all

Causes all warnings and currently-enabled remarks to be reported as errors.

Wextra-tokens

Determines whether warnings are issued about extra tokens at the end of preprocessor directives.

Wformat

Determines whether argument checking is enabled for calls to printf, scanf, and so forth.

Wformat-security

Determines whether the compiler issues a warning when the use of format functions may cause security problems.

Wl

Passes options to the linker for processing.

Wmain

Determines whether a warning is issued if the return type of main is not expected.

Wmissing-declarations

Determines whether warnings are issued for global functions and variables without prior declaration.

Wmissing-prototypes

Determines whether warnings are issued for missing prototypes.

Wpointer-arith

Determines whether warnings are issued for questionable pointer arithmetic.

Wp

Passes options to the preprocessor.

Wreorder

Tells the compiler to issue a warning when the order of member initializers does not match the order in which they must be executed.

Wreturn-type

Determines whether warnings are issued when a function is declared without a return type, when the definition of a function returning void contains a return statement with an expression, or when the closing brace of a function returning non-void is reached.

Wshadow

Determines whether a warning is issued when a variable declaration hides a previous declaration.

Wsign-compare

Determines whether warnings are issued when a comparison between signed and unsigned values could produce an incorrect result when the signed value is converted to unsigned.

Wstrict-aliasing

Determines whether warnings are issued for code that might violate the optimizer's strict aliasing rules.

Wstrict-prototypes

Determines whether warnings are issued for functions declared or defined without specified argument types.

Wtrigraphs

Determines whether warnings are issued if any trigraphs are encountered that might change the meaning of the program.

Wuninitialized

Determines whether a warning is issued if a variable is used before being initialized.

Wunknown-pragmas

Determines whether a warning is issued if an unknown #pragma directive is used.

Wunused-function

Determines whether a warning is issued if a declared function is not used.

Wunused-variable

Determines whether a warning is issued if a local or non-constant static variable is unused after being declared.

Wwrite-strings

Issues a diagnostic message if const char * is converted to (non-const) char *.

X

Removes standard directories from the include file search path.

x (type option)

All source files found subsequent to -x type will be recognized as a particular type.

Xlinker

Passes a linker option directly to the linker.

Xs

Passes options to the backend tool.

Xsycl-target

Enables options to be passed to the specified tool in the device compilation tool chain for the target.

Yc

Tells the compiler to create a precompiled header file.

Y-

Tells the compiler to ignore all other precompiled header files.

Yu

Tells the compiler to use a precompiled header file.

Zc

Lets you specify ANSI C standard conformance for certain language features.

Zi, Z7 , ZI

Tells the compiler to generate full debugging information in either an object (.obj) file or a project database (PDB) file.

Zl

Causes library names to be omitted from the object file.

Zp

Specifies alignment for structures on byte boundaries.

Zs

Tells the compiler to check only for correct syntax.