Intel® Thread Checker for Windows* - Compiler settings for Windows* OpenMP* applications when using Thread Checker

Recommended Intel® Compiler Settings for Windows* OpenMP* Applications When Using the Intel® Thread Checker

Get the best results from Intel® Thread Checker by using the following command to compile your Windows* OpenMP* applications:

icl file.c /Qopenmp /MD [/Qtcheck] /Od /Zi /link /fixed:no
Tells the compiler to process the OpenMP* pragmas.
(highly recommended)

Specifies to use the dynamic multi-threaded version of the C runtime library ( msvcrt80.dll).

Specifies to use the dynamic version of the OpenMP* runtime library. ( libguide40.dll or libiomp5md.dll)


  • /MT uses the static version of the Intel runtime libraries for OpenMP* applications ( libguide.lib or libiomp5mt.lib). Intel® Thread Checker reports false positives if you use the static version of the OpenMP* runtime libraries.
  • /MT specifies to use the static multi-threaded C runtime library ( libcmt.lib) that reduces the information available for the analysis engine. This may cause Intel® Thread Checker to miss statically linked libc calls of standard libraries. However, Intel® Thread Checker should still catch the underlying system APIs used to implement the libc capabilities.
Enables thread count independent (TCI) analysis mode instead of thread count dependent (TCD) analysis mode on OpenMP* applications.

Allows Intel® Thread Checker to more easily associate errors to source lines.

Intel® Thread Checker can also analyze optimized binaries, but it is difficult for Intel® Thread Checker to pinpoint the source code location causing a problem in optimized assembly that does not have specific source lines.

(highly recommended)

Creates symbols for the binary. Intel® Thread Checker uses the symbols to associate addresses to source lines.

Note: For binaries compiled without /Zi (no symbols), Intel® Thread Checker instruments using API Imports. Intel® Thread Checker cannot find all threading errors within a binary that is instrumented with API Imports. The Default of API Imports instrumentation on a particular file can be changed to Full Image via advanced settings in Intel® Thread Checker, but the result is that you will not see the source code that caused the problem, only the assembly.

/link /fixed:no

Required to allow Intel® Thread Checker to relocate functions within your binary.

Related Documentation

  • Intel® Thread Checker Help » About OpenMP*
  • Using Intel® Thread Checker on OpenMP* Applications Compiled with the Microsoft* Compiler at [url…]

Confirmed On:

  • Microsoft* Visual Studio* 2005 development system
  • Intel® C/C++ Compiler 10.1 for Windows*
  • Intel® Fortran Compiler 10.1 for Windows*
  • Intel® Thread Checker 3.1 for Windows*

Operating System:

Windows* XP Professional x64 Edition, Windows Server* 2003 Standard x64 Edition, Windows Server* 2003 Enterprise x64 Edition, Longhorn Beta 1, Windows Vista* Beta 1, Windows* Storage Server, Windows Vista* 64, Windows Vista* Starter, 32-bit version, Windows Vista* Home Basic, 32-bit version, Windows Vista* Home Premium, 32-bit version, Windows Vista* Business, 32-bit version, Windows Vista* Enterprise, 32-bit version, Windows Vista* Ultimate, 32-bit version, Windows Vista* RC2, Windows Vista* Home Basic, 64-bit version, Windows Vista* Home Premium, 64-bit version, Windows Vista* Business, 64-bit version, Windows Vista* Enterprise, 64-bit version, Windows Vista* Ultimate, 64-bit version, Windows Vista*, Windows Vista* 32, Windows Server* 2003 for Itanium-based Systems, Windows* XP Starter Edition, Windows* Compute Cluster Server 2003, Windows* 2000, Windows* XP 64-Bit Edition, Windows* XP Professional, Windows* XP Home Edition, Windows* XP Tablet PC Edition, Windows Server* 2003, Windows* XP Media Center Edition, Windows* 2000 Server, Windows* 2000 Advanced Server, Windows Server* 2003 Standard Edition, Windows* XP 64-Bit Edition Version 2003

Optimization Notice in English

For more complete information about compiler optimizations, see our Optimization Notice.