Microsoft* Compatibility

The Intel® C++ Compiler Classic is fully source- and binary-compatible (native code only) with Microsoft Visual C++* (MSVC). You can debug binaries built with the Intel oneAPI DPC++/C++ Compiler from within the Microsoft Visual Studio* environment.

The compiler supports security checks with the /GS option. You can control this option in the Microsoft Visual Studio IDE by using C/C++ > Code Generation > Buffer Security Check.

The compiler also includes support for safe exception handling features with the /Qsafeseh option for 32-bit binaries. This option is on by default. You can control this option in the Microsoft Visual Studio IDE by using C/C++ > Command Line > Additional options.

Important

The compiler is a hosted compiler, not a standalone compiler. The compiler requires that standard development tools for the host operating system (linker, librarian, and so forth), as well as standard libraries and headers, be installed and available in your Path, Library Path, and Include environment variables. The host compiler provides access to I/O facilities through, for example, <stdio.h> and the C runtime library, as well as providing the implementation for the C++ standard template (for example, <vector>). When you build your application with the compiler, the stdio.h file is found in the host compiler's library. Likewise when you link your application, the link step uses the host OS linker to bind the application, and the host C runtime library provides the implementation for the runtime support routines.

On Windows, the standard compiler is Microsoft Visual C++. On Linux the standard compiler is GCC. The standard compiler must be installed and available in your environment before you run the compiler.

Microsoft Visual Studio Integration

The compiler is compatible with Microsoft Visual Studio 2017 and 2019 projects.

Note

Support for Microsoft Visual Studio 2017 is deprecated as of the Intel® oneAPI 2022.1 release, and will be removed in a future release.

The compiler only supports native C++ project types provided by Microsoft Visual Studio development environment. The project types with .NET* attributes such as the ones below, cannot be converted to an Intel C++ project:

Unsupported Major Features

Unsupported Preprocessor Features

Mixing Managed and Unmanaged Code

If you use the managed extensions to the C++ language in Microsoft Visual Studio .NET, you can use the compiler for your non-managed code for better application performance. Make sure managed keywords do not appear in your non-managed code.

For information on how to mix managed and unmanaged code, refer to the article, An Overview of Managed/Unmanaged Code Interoperability, on the Microsoft Web site.

See Also