The compiler integrates into the following versions of Microsoft Visual Studio*:
For full functionality within Visual Studio, including debugging and development, Visual Studio Community Edition or higher is required. Visual Studio Express Edition allows only command-line builds. For all versions, Microsoft C++ support must be selected as part of the Visual Studio install. For Visual Studio 2017 and later, you must use a custom install to select this option.
You typically do not need to set the environment variables on Windows, as the compiler command-line window sets these variables for you automatically. If you need to set the environment variables, run the environment script as described in the suite-specific Get Started documentation.
The default installation directory (<install_dir>) is C:\Program Files (x86)\Intel\oneAPI.
Install GPU Drivers (Optional)To develop and run applications for Intel GPUs you must first install the latest Intel GPU drivers.
The Intel® oneAPI DPC++/C++ Compiler provides multiple drivers:
Language | Linux Drivers | Windows Drivers | Option Style | Notes |
---|---|---|---|---|
C |
icx icx-cc |
icx-cc |
Linux-style |
icx is the recommended default C driver for Linux. If you use icx with a C++ source file, it is compiled as a C++ file. Use icx to link C object files. icx-cc is the Microsoft-compatible variant of icx. |
C++ |
icpx | icpx |
Linux-style |
icpx is the recommended default C++ driver for Linux. If you use icpx with a C source file, it is compiled as an C++ file. Use icpx to link C++ object files. |
C/C++ |
icx-cl |
icx icx-cl |
Windows-style |
icx is the recommended default driver for Windows. icx-cl is the Microsoft-compatible variant of icx. On Linux, icx-cl requires the Microsoft Visual Studio package. |
Invoke the compiler using the following syntax:
{compiler driver} [option] file1 [file2...]To invoke the compiler using the command line from within Microsoft Visual Studio, open a command prompt and enter your compilation command. For example:
icx hello-world.cpp
For SYCL compilation, use the -fsycl option with the C++ driver:
icx -fsycl hello-world.cpp
Project Support for the Intel® DPC++/C++ Compiler in Microsoft Visual Studio
New Microsoft Visual Studio projects for DPC++ are automatically configured to use the Intel® oneAPI DPC++/C++ Compiler.
New Microsoft Visual C++* (MSVC) projects must be manually configured to use the Intel® oneAPI DPC++/C++ Compiler.
Use the Intel® DPC++/C++ Compiler in Microsoft Visual Studio
Exact steps may vary depending on the version of Microsoft Visual Studio in use.
Select Intel C++ Compiler <major version> (example 2021) to invoke icx.
Select Intel C++ Compiler <major.minor> (example 19.2) to invoke icl.
Alternatively, you can specify a compiler version as the toolset for all supported platforms and configurations of the selected project(s) by selecting Project > Intel Compiler > Use Intel oneAPI DPC++/C++ Compiler.
Select Compiler Version
If you have multiple versions of the Intel® oneAPI DPC++/C++ Compiler installed, you can select which version you want from the Compiler Selection dialog box:
Switch Back to the Microsoft Visual Studio C++ Compiler
If your project is using the Intel® oneAPI DPC++/C++ Compiler, you can choose to switch back to the Microsoft Visual C++ compiler:
This action updates the solution file to use the Microsoft Visual Studio C++ compiler. All configurations of affected projects are automatically cleaned unless you select Do not clean project(s). If you choose not to clean projects, you will need to rebuild updated projects to ensure all source files are compiled with the new compiler.
Use the following steps to test your compiler installation and build a program.
#include <iostream> int main() { std::cout << “Hello, world!\n”; return 0; }
icx hello-world.cpp
hello-world.exeWhich outputs:
Hello, world!
You can direct and control compilation with compiler options. For example, you can create the object file and output the final binary in two steps:
icx hello-world.cpp /c /Fohello-world.objThe /c option prevents linking at this step and /Fo specifies the name for the object file.
icx hello-world.obj /Fehello-world.exeThe /Fe option specifies the generated executable file name.
Refer to Compiler Options for details about available options.