Intel® oneAPI DPC++/C++ Compiler Developer Guide and Reference

ID 767253
Date 7/13/2023
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

Specify Component Locations

Before you invoke the compiler, you may need to set certain environment variables that define the location of compiler-related components. The compiler includes environment configuration scripts to configure your build and development environment variables:

  • On Linux, the file is a shell script called setvars.sh.
  • On Windows, the file is a batch file called setvars.bat.

NOTE:
The Intel oneAPI DPC++/C++ Compiler is designed and tested only for use on 64-bit Linux and Windows operating systems, 32-bit operating systems are not supported. Additionally, the macOS operating system is not supported by the compiler.

Linux

Set the environment variables before using the compiler by sourcing the shell script setvars.sh. Depending on the shell, you can use the source command or a . (dot) to source the shell script, according to the following rules for a .sh script:

Using source:

source /<install-dir>/setvars.sh <arg1> <arg2> … <argn> 

Example:

source /opt/intel/oneapi/setvars.sh intel64

Using . (dot):

. /<install-dir>/setvars.sh <arg1> <arg2> … <argn>

Example:

. /opt/intel/oneapi/setvars.sh intel64

Use source /<install-dir>/setvars.sh --help for more setvars usage information.

The compiler environment script file accepts an optional target architecture argument <arg>:

  • intel64: Generate code and use libraries for Intel® 64 architecture-based targets.
  • --include-intel-llvm: Adds the Intel Compiler's clang binaries folder (bin-llvm) to the PATH.

If you want the setvars.sh script to run automatically in all of your terminal sessions, add the source setvars.sh command to your startup file. For example, inside your .bash_profile entry for Intel® 64 architecture targets.

If the proper environment variables are not set, errors similar to the following may appear when attempting to execute a compiled program:

./a.out: error while loading shared libraries:
libimf.so: cannot open shared object file: No such file or directory

Windows

Under normal circumstances, you do not need to run the setvars.bat batch file. The terminal shortcuts in the Windows Start menu, Intel oneAPI command prompt for <target architecture> for Visual Studio <year>, set these variables automatically.

For additional information, see Use the Command Line on Windows.

You need to run the setvars batch file if a command line is opened without using one of the provided Command Prompt menu items in the Start menu, or if you want to use the compiler from a script of your own.

The setvars batch file inserts DLL directories used by the compiler and libraries at the beginning of the existing Path. Because these directories appear first, they are searched before any directories that were part of the original Path provided by Windows (and other applications). This is especially important if the original Path includes directories with files that have the same names as those added by the compiler and libraries.

The setvars batch file takes multiple optional arguments; the following two arguments are recognized for compiler and library initialization:

<install-dir>\setvars.bat [<arg1>] [<arg2>]

Where <arg1> is optional and can be:

  • intel64: Generate code and use libraries for Intel® 64 architecture (host and target).
  • --include-intel-llvm: Adds the Intel Compiler's clang binaries folder (bin-llvm) to the PATH.

The <arg2> is optional. If specified, it is one of the following:

  • vs2022: Microsoft Visual Studio 2022
  • vs2019: Microsoft Visual Studio 2019
  • vs2017: Microsoft Visual Studio 2017
    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.

If you have more than one edition of Visual Studio installed on your system (example: 2022 Professional and 2022 Enterprise), the automatic search for an installation uses the following precedence (within a specific year):

  • Professional
  • Enterprise
  • Community

The preferred edition can be specified using the VS20??INSTALLDIR environment variables (VS2022INSTALLDIR, VS2019INSTALLDIR, etc.).

If <arg1> is not specified, the script uses the intel64 argument by default. If <arg2> is not specified, the script uses the highest installed version of Microsoft Visual Studio detected during the installation procedure.