12

In 16.0, the Intel C++ Compiler provided two compilers (one based on EDG, another based on Clang).

From the 16.0 documentation:

Using the Command Line

To invoke the compiler from the command line, use a command similar to the following:

  • For C source files: icc my_source_file.c or icl my_source_file.c

  • For C++ source files: icpc my_source_file.cpp or icl++ my_source_file.cpp

Following successful compilation, the compiler creates an executable file in the current directory.

icl/icl++ is a Clang-based front-end. You can use Clang options with this compiler. icc/icpc is an EDG-based front-end. You cannot use Clang options with icc/icpc.

But I'm not seeing a similar description now.

sepp2k
  • 363,768
  • 54
  • 674
  • 675
Zeson
  • 121
  • 4

2 Answers2

4

If Intel is using icl/icl++ to denote Clang-based front-end and icc/icpc to denote EDG-based front-end in 19.0 as well, then both these are available but on different platforms.

icc/icpc is available in Linux and macOS and icl is available in Windows.

From the documentation of 19.0:

Linux*:

Invoke the compiler using icc/icpc to compile C/C++ source files.

macOS*:

Invoke the compiler using icc/icpc to compile C/C++ source files.

Windows*:

You can invoke the Intel® C++ Compiler on the command line using the icl command.

P.W
  • 26,289
  • 6
  • 39
  • 76
  • 1
    I don't think icl is clang-based flag, it's more like name convention of msvc, cl. So it's still not sure whether it's clang-based or EDG – Zeson May 13 '19 at 02:06
  • "optimizing C (icc) and C++ (icpc) compiler" icc is C, not C++, like gcc vs g++ and clang vs clang++. And it is not clang based (ICC (Linux), ICL (Windows)), https://community.intel.com/t5/Intel-C-Compiler/What-s-the-difference-between-icx-icl-and-icc-compilers/td-p/1224714 – Валерий Заподовников Feb 13 '23 at 12:50
  • icl++/icl was also awailabe on MacOS. And it was clang based, but that is MacOS. https://web.archive.org/web/20150905074805/https://software.intel.com/en-us/get-started-with-cpp-compiler-for-osx-parallel-studio-xe – Валерий Заподовников Feb 15 '23 at 18:06
0

In the current version for Linux, which is Intel oneAPI Base Toolkit for Linux 2021.1.8.1970, I could find clang, but neither icc nor icpc. So, just in case, I searched for ~/intel/oneapi/**/ic*(*) with zsh (i.e. executable files starting with ic, recursively), and found icx and icpx. The output of icx --help says "Intel(R) C++ Compiler Help" and still mentions the executables icc and icpc, so the executables have apparently been renamed, but Intel forgot to update the documentation.

One can see both ICC and ICX mentioned on: https://software.intel.com/content/www/us/en/develop/articles/oneapi-c-compiler-system-requirements.html

vinc17
  • 2,829
  • 17
  • 23
  • 4
    ICC and ICPC does not come with the oneAPI base toolkit. It's provided with the HPC add-on. You can find them inside .intel64/ relative to icx/icpx binary location. Source setvars.sh with 'intel64' argument to set the paths. – Indrajit Banerjee Feb 07 '21 at 13:01