英特尔C++编译器 (19.0) 现在是否仅使用 Clang 前端(即已经放弃的 EDG)?
Is the Intel C++ Compiler (19.0) now only using the Clang front-end (i.e. already abandoned EDG)?
在 16.0 中,英特尔C++编译器提供了两个编译器(一个基于 EDG,另一个基于 Clang)。
从 16.0 文档:
使用命令行
若要从命令行调用编译器,请使用类似于 以下内容:
对于 C 源文件:
icc my_source_file.c
或icl my_source_file.c
对于C++源文件:
icpc my_source_file.cpp
或icl++ 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
开头的可执行文件,递归地),找到了icx
和icpx
。icx --help
的输出显示"英特尔(R) C++编译器帮助",并且仍然提到可执行文件icc
和icpc
,因此可执行文件显然已被重命名,但英特尔忘记更新文档。
人们可以看到ICC和ICX都提到了:https://software.intel.com/content/www/us/en/develop/articles/oneapi-c-compiler-system-requirements.html
- 奇怪的结构&GCC&clang(void*返回类型)
- 数据成员SFINAE的C++17测试:gcc vs clang
- 当我编译webrtc服务器时,Windows上只支持clang-cl
- 为什么在Windows上的VS 2019和Clang 9中"size_t"在没有标题的情况下工作
- 我可以将一个用clang c++11编译的对象与另一个用c++17编译的对象链接起来吗
- Clang bug?使用指针作为模板参数
- clang整洁10忽略了我的NOLINT命令
- 如何防止clang格式在流运算符调用之间添加换行符<<
- 在clang++预处理器中确定gcc工具链版本
- 为什么 Clang 不允许"and"作为函数名称?
- 带有 -stdlib=libc++ 的 clang++ 9.0.1 找不到<optional>
- clang格式:宏的缩进
- CLANG 编译器 说:变量"PTR"可能未初始化
- clang格式:禁用排序包含
- 为什么lambda在clang上崩溃而不是在gcc上崩溃
- gcc和clang在表达式是否为常量求值的问题上存在分歧
- 循环展开 - G++ 与 Clang++
- 如何将 AST 用于自定义前端操作和 clang 静态分析
- 英特尔C++编译器 (19.0) 现在是否仅使用 Clang 前端(即已经放弃的 EDG)?
- 禁用在Clang前端寻找预编译的标头文件