英特尔C++编译器 (19.0) 现在是否仅使用 Clang 前端(即已经放弃的 EDG)?

Is the Intel C++ Compiler (19.0) now only using the Clang front-end (i.e. already abandoned EDG)?

本文关键字:Clang 前端 放弃 EDG 编译器 C++ 英特尔 是否      更新时间:2023-10-16

在 16.0 中,英特尔C++编译器提供了两个编译器(一个基于 EDG,另一个基于 Clang)。

从 16.0 文档:

使用命令行

若要从命令行调用编译器,请使用类似于 以下内容:

  • 对于 C 源文件:icc my_source_file.cicl my_source_file.c

  • 对于C++源文件:icpc my_source_file.cppicl++ my_source_file.cpp

成功编译后,编译器将创建一个可执行文件 文件。

icl/icl++是基于Clang的前端。您可以将 Clang 选项与此编译器一起使用。icc/icpc是基于EDG的前端。不能将 Clang 选项与icc/icpc一起使用。

但我现在没有看到类似的描述。

如果英特尔在 19.0 中使用icl/icl++表示基于 Clang 的前端,icc/icpc表示基于 EDG 的前端,那么这两种方法都可用,但平台不同。

icc/icpc在 Linux 和 macOS 中可用,icl在 Windows 中可用。

从 19.0 的文档:

Linux*

使用icc/icpc调用编译器来编译C/C++源文件。

苹果操作系统*

使用icc/icpc调用编译器来编译C/C++源文件。

视窗*

您可以在命令行上调用英特尔®C++编译器,使用icl命令。

在 Linux 的当前版本中,即适用于Linux 的英特尔 oneAPI 基本工具包2021.1.8.1970,我可以找到clang,但既没有icc也没有icpc。所以,以防万一,我用zsh搜索了~/intel/oneapi/**/ic*(*)(即以ic开头的可执行文件,递归地),找到了icxicpxicx --help的输出显示"英特尔(R) C++编译器帮助",并且仍然提到可执行文件iccicpc,因此可执行文件显然已被重命名,但英特尔忘记更新文档。

人们可以看到ICC和ICX都提到了:https://software.intel.com/content/www/us/en/develop/articles/oneapi-c-compiler-system-requirements.html