This section provides a cross-reference table of compiler options used on Windows* and Linux* operating systems.
Some compiler options are only available on certain systems, as indicated by these labels:
Label | Meaning |
---|---|
i32 | The option is available on systems using IA-32 architecture. |
i64em | The option is available on systems using Intel® 64 architecture. |
i64 | The option is available on systems using IA-64 architecture. |
If no label appears, the option is available on all supported systems.
If "only" appears in the label, the option is only available on the identified system.
For more details on the options, refer to the Alphabetical Compiler Options section.
For information on conventions used in this table, see Notation Conventions.
The Intel® C++ Compiler includes the Intel® Compiler Option Mapping tool. It provides a way to compare ("map") options between Windows and Linux and vice versa.
The following cross-reference table is based on the alphabetical order of Linux compiler options, which appear in the first column.
Linux Option | Windows Equivalent | Description |
---|---|---|
-[no-]alias-args | /Qalias-args[-] | enable(DEFAULT)/disable C/C++ rule that function arguments may be aliased |
-[no-]ansi-alias | /Qansi-alias[-] | enable/disable(DEFAULT) use of ANSI aliasing rules in optimizations |
-[no-]complex-limited-range | /Qcomplex-limited-range[-] | enable/disable(DEFAULT) the use of the basic algebraic expansions of some complex arithmetic operations |
-[no]debug [keyword] | /[no]debug[:keyword] | enable debug information and control output of enhanced debug information |
-[no-]fnsplit | /Qfnsplit[-] | enable/disable function splitting (enabled with -prof-use) |
-[no-]ftz | /Qftz[-] | enable/disable flush denormal results to zero |
-[no-]global-hoist | /Qglobal-hoist[-] | enable(DEFAULT)/disable external globals are load safe |
-[no-]IPF-fltacc | /QIPF-fltacc[-] | enable/disable optimizations that affect floating point accuracy |
-[no-]IPF-fma | /QIPF-fma[-] | enable/disable the combining of floating point multiplies and add/subtract operations |
-[no-]IPF-fp-relaxed | /QIPF-fp-relaxed[-] | enable/disable use of faster but slightly less accurate code sequences for math functions |
-[no-]multibyte-chars | /Qmultibyte-chars[-] | provide support for multi-byte characters |
-[no-]prec-div | /Qprec-div[-] | improve precision of floating-point divides (some speed impact) |
-[no-]prec-sqrt | /Qprec-sqrt[-] | determine if certain square root optimizations are enabled |
-[no-]prefetch | /Qprefetch[-] | enable(DEFAULT)/disable prefetch insertion |
-[no]restrict | /Qrestrict[-] | enable/disable the 'restrict' keyword for disambiguating pointers |
-[no-]sox | /Qsox[-] | enable/disable(DEFAULT) saving of compiler options and version in the executable |
-[no]traceback | /traceback | specify whether the compiler generates data to allow for source file traceback information at runtime |
-A- | /QA[-] | remove all predefined macros |
-A<name>[(val)] | /QA<name>[(val)] | create an assertion 'name' having value 'val' |
-ansi | /Za | equivalent to GNU -ansi |
-auto-ilp32 | /Qauto-ilp32 | specify that the application cannot exceed a 32-bit address space (-ipo[n] required) |
-ax<codes> | /Qax<codes> | generate code specialized for processors specified by <codes> while also generating generic IA-32 code |
-C | /C | don't strip comments |
-c | /c | compile to object (.o) only, do not link |
-create-pch <file> | /Yc[hfile] | create precompiled header file |
-D<name>[=<text>] | /D<name>[{=|#}<text>] | define macro |
-dM | /QdM | output macro definitions in effect after preprocessing (use with -E) |
-E | /E | preprocess to stdout |
-EP | /EP | preprocess to stdout omitting #line directives |
-falias | /Oa | assume aliasing in program (DEFAULT) |
-fargument-alias | /Qalias-args | same as -alias-args |
-fargument-noalias | /Qalias-args- | same as -alias-args- |
-fast | /fast | enable -xP -O3 -ipo -no-prec-div -static |
-fcode-asm | /FAc | produce assembly file with optional code annotations (requires -S) |
-fdata-sections | /Gy | same as -ffunction-sections |
-ffnalias | /Ow | assume aliasing within functions (DEFAULT) |
-ffunction-sections | /Gy | separate functions for the linker (COMDAT) |
-fno-alias | /Oa- | assume no aliasing in program |
-fno-builtin | /Oi- | disable inline expansion of intrinsic functions |
-fno-fnalias | /Ow- | assume no aliasing within functions, but assume aliasing across calls |
-fno-rtti | /GR- | disable RTTI support |
-fp | /Oy- | disable using EBP as general purpose register |
-fp-port | /Qfp-port | round fp results at assignments & casts (some speed impact) |
-fpstkchk | /Qfpstkchk | enable fp stack checking after every function/procedure call |
-fsource-asm | /FAs | produce assembly file with optional source annotations |
-fstack-security-check | /GS | enable overflow security checks |
-fsyntax-only | /Zs | perform syntax and semantic checking only (no object file produced) |
-ftemplate-depth-<n> | /Qtemplate-depth<n> | control the depth in which recursive templates are expanded |
-ftrapuv | /Qtrapuv | trap uninitialized variables |
-funroll-loops | /Qunroll | unroll loops based on default heuristics |
-funsigned-char | /J | change default char type to unsigned |
-H | /QH | print include file order |
-help | /help | print this help message |
-I<dir> | /I<dir> | add directory to include file search path |
-inline-debug-info | /Qinline-debug-info | preserve the source position of inlined code instead of assigning the call-site source position to inlined code |
-ip | /Qip | enable single-file IP optimizations (within files) |
-IPF-flt-eval-method0 | /QIPF-flt-eval-method0 | floating point operands evaluated to the precision indicated by program |
-IPF-fp-speculation<mode> | /QIPF-fp-speculation<mode> | enable floation point speculations with the following <mode> conditions |
-ip-no-inlining | /Qip-no-inlining | disable full and partial inlining (requires -ip or -ipo) |
-ip-no-pinlining | /Qip-no-pinlining | disable partial inlining (requires -ip or -ipo) |
-ipo[n] | /Qipo[n] | enable multi-file IP optimizations (between files) |
-ipo-c | /Qipo-c | generate a multi-file object file (ipo_out.o) |
-ipo-S | /Qipo-S | generate a multi-file assembly file (ipo_out.s) |
-ipo-separate | /Qipo-separate | create one object file for every source file |
-ivdep-parallel | /Qivdep-parallel | make ivdep directives mean no loop carried dependencies |
-Kc++ | /TP | compile all source or unrecognized file types as C++ source files |
-long_double | /Qlong-double | enable 80-bit 'long double' |
-M | /QM | generate makefile dependency information |
-map-opts | /Qmap-opts | enable option mapping tool |
-MD | /MD, /MDd | preprocess and compile, generating output file containing dependency information ending with extension .d |
-MF<file> | /QMF<file> | generate makefile dependency information in file (must specify -M or -MM) |
-MG | /QMG | similar to -M, but treat missing header files as generated files |
-MM | /QMM | similar to -M, but do not include system header files |
-MMD | /QMMD | similar to -MD, but do not include system header files |
-mp | /Op[-] | maintain floating point precision (disables some optimizations) |
-mp1 | /Qprec | improve floating-point precision (speed impact is less than -mp) |
-MQ<target> | /QMQ<target> | same as -MT, but quotes special Make characters |
-MT<target> | /QMT<target> | change the default target rule for dependency generation |
-nobss-init | /Qnobss-init | disable placement of zero-initialized variables in BSS (use DATA) |
-nostdinc | /X | same as -X |
-O | /O2 | same as -O2 |
-o<file> | /Fe<file> | name output file |
-O0 | /Od | disable optimizations |
-O1 | /O1 | optimize for maximum speed, but disable some optimizations which increase code size for a small speed benefit. |
-O2 | /O2 | enable optimizations (DEFAULT) |
-O3 | /O3 | enable -O2 plus more aggressive optimizations that may not improve performance for all programs |
-Ob<n> | /Ob<n> | control inline expansion |
-openmp | /Qopenmp | enable the compiler to generate multi-threaded code based on the OpenMP directives |
-openmp-profile | /Qopenmp-profile | link with instrumented OpenMP runtime library to generate OpenMP profiling information |
-openmp-report{0|1|2} | /Qopenmp-report{0|1|2} | control the OpenMP parallelizer diagnostic level |
-openmp-stubs | /Qopenmp-stubs | enables the user to compile OpenMP programs in sequential mode |
-opt-report | /Qopt-report | generate an optimization report to stderr |
-opt-report-file<file> | /Qopt-report-file<file> | specify the filename for the generated report |
-opt-report-help | /Qopt-report-help | display the optimization phases available for reporting |
-opt-report-level[level] | /Qopt-report-level[level] | specify the level of report verbosity (min|med|max) |
-opt-report-phase<name> | /Qopt-report-phase<name> | specify the phase that reports are generated against |
-opt-report-routine<name> | /Qopt-report-routine<name> | reports on routines containing the given name |
-Os | /Os | enable speed optimizations, but disable some optimizations which increase code size for small speed benefit |
-P, -F | /P | preprocess to file omitting #line directives |
-parallel | /Qparallel | enable the auto-parallelizer to generate multi-threaded code for loops that can be safely executed in parallel |
-par-report{0|1|2|3} | /Qpar-report{0|1|2|3} | control the auto-parallelizer diagnostic level |
-par-threshold[n] | /Qpar-threshold[n] | set threshold for the auto-parallelization of loops where n is an integer from 0 to 100 |
-pc32 | /Qpc32 | set internal FPU precision to 24 bit significand |
-pc64 | /Qpc64 | set internal FPU precision to 53 bit significand |
-pc80 | /Qpc80 | set internal FPU precision to 64 bit significand (DEFAULT) |
-pch | /YX | enable automatic precompiled header file creation/usage |
-prof-dir <d> | /Qprof-dir <d> | specify directory for profiling output files (*.dyn and *.dpi) |
-prof-file <f> | /Qprof-file <f> | specify file name for profiling summary file |
-prof-gen[x] | /Qprof-gen[x] | instrument program for profiling |
-prof-gen-sampling | /Qprof-gen-sampling | prepare code for use with profrun sample gathering tool |
-prof-use | /Qprof-use | enable use of profiling information during optimization |
-Qlocation,<str>,<dir> | /Qlocation,<str>,<dir> | set <dir> as the location of tool specified by <str> |
-Qoption,<str>,<opts> | /Qoption,<str>,<opts> | pass options <opts> to tool specified by <str> |
-rcd | /Qrcd | rounding mode to enable fast float-to-int conversions |
-S | /S | compile to assembly (.s) only, do not link (*I) |
-ssp | /Qssp | enable software-based speculative pre-computation |
-strict-ansi | /Za | strict ANSI conformance dialect |
-tcheck | /Qtcheck | generate instrumentation to detect multi-threading bugs |
-U<name> | /U<name> | remove predefined macro |
-unroll [n] | /Qunroll[n] | set maximum number of times to unroll loops |
-unroll 0 | /Qunroll0 | disable loop unrolling |
-unroll[n] | /Qunroll[n] | set maximum number of times to unroll loops |
-unroll0 | /Qunroll0 | disable loop unrolling |
-use-asm | /Quse-asm[-] | produce objects through assembler |
-use-pch <file> | /Yu[hfile] | use precompiled header file |
-V | /QV | display compiler version information |
-vec-report[n] | /Qvec-report[n] | control amount of vectorizer diagnostic information-opt-report generate an optimization report to stderr |
-w | /w | disable all warnings |
-Wall | /Wall | enable all warnings |
-Wbrief | /WL | print brief one-line diagnostics |
-Wcheck | /Wcheck | enable more strict diagnostics |
-Wcontext-limit=<n> | /Qcontext-limit<n> | set maximum number of template instantiation contexts shown in diagnostic |
-wd<L1>[,<L2>,...] | /Qwd<L1>[,<L2>,...] | disable diagnostics L1 through LN |
-we<L1>[,<L2>,...] | /Qwe<L1>[,<L2>,...] | change severity of diagnostics L1 through LN to error |
-Werror | /WX | force warnings to be reported as errors |
-wn<n> | /Qwn<n> | print a maximum of n errors |
-Wp64 | /Wp64 | print diagnostics for 64-bit porting |
-wr<L1>[,<L2>,...] | /Qwr<L1>[,<L2>,...] | change severity of diagnostics L1 through LN to remark |
-ww<L1>[,<L2>,...] | /Qww<L1>[,<L2>,...] | change severity of diagnostics L1 through LN to warning |
-X | /X | remove standard directories from include file search path |
-x<codes> | /Qx<codes> | generate specialized code to run exclusively on processors indicated by <codes> as described above |
-Zp[n] | /Zp[n] | specify alignment constraint for structures (n=1,2,4,8,16) |