Invoke the Compiler

Requirements Before Using the Command Line

You may need to set certain environment variables before using the command line. For more information, see Specify the Location of Compiler Components.

Different Compilers and Drivers

The table below provides the different compiler front-end and driver information.

Compiler Notes Linux Driver Windows Driver

Intel® DPC++ Compiler

A C++ and SYCL compiler with a Clang front-end.

To use Microsoft Visual C++ (MSVC) compatible options, use dpcpp-cl.

dpcpp

dpcpp (clang compatible)

dpcpp-cl (clang-cl compatible)

Intel® C++ Compiler

A C++ compiler with a Clang front-end, that supports an OpenMP offload.

icx for C

icpx for C++

icx

Use the Compiler from the Command Line

Use the compiler with the OS/language specific invocations below.

Linux

Invoke the compiler using icx/icpx or dpcpp to compile C/C++/DPC++ source files.

  • When you invoke the compiler with dpcpp the compiler builds C++ source files with SYCL using SYCL libraries and SYCL include files. If you use dpcpp with a C source file, it is compiled as a SYCL file. Use dpcpp to link SYCL object files.
  • When you invoke the compiler with icx the compiler builds C source files using LLVM C libraries and C include files. If you use icx with a C++ source file, it is compiled as a C++ file. Use icx to link C object files.
  • When you invoke the compiler with icpx the compiler builds C++ source files using C++ libraries and C++ include files. If you use icpx with a C source file, it is compiled as an C++ file. Use icpx to link C++ object files.

The icx, icpx, or dpcpp command:

  • Compiles and links the input source file(s).
  • Produces one executable file, a.out, in the current directory.

Windows

You can invoke the compiler on the command line using icx or dpcpp-cl. This command:

  • Compiles and links the input source file(s).
  • Produces object file(s) and assigns the names of the respective source file(s), but with a .obj extension.
  • Produces one executable file and assigns it the name of the first input file on the command line, but with a .exe extension.
  • Places all the files in the current directory.

When compilation occurs with the compiler, many tools may be called to complete the task that may reproduce diagnostics unique to the given tool. For instance, the linker may return a message if it cannot resolve a global reference.

Command Line Syntax

The syntax to invoke the compiler is:

Linux

icpx [option] file1 [file2...]

Windows

icx [option] file1 [file2...]

Argument

Description

option

Indicates one or more command line options. On Linux systems, the compiler recognizes one or more letters preceded by a hyphen (-). On Windows, options are preceded by a hyphen (-) or slash (/). This includes linker options.

Options are not required when invoking the compiler. The default behavior of the compiler implies that some options are ON by default when invoking compiler.

file1, file2...

Indicates one or more files to be processed by the compiler.

/link (Windows)

All options following /link are passed to the linker. Compiler options must precede link if they are not to be passed to the linker.

Other Methods for Using the Command Line to Invoke the Compiler

See Also