英特尔编译器使用错误的头

丹尼尔·斯蒂芬斯(Daniel Stephens)

我试图找出原因Intel Compiler 18.0,这得到了安装我的Visual Studio 2017年安装,使用的头文件MSVC,而不是它自己的一个(因为它会导致错误)。

#include <vector>在Visual Studio的C ++项目中进行编译时,一个简单的触发器会在否则为空的翻译单元中触发此错误

1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.16.27023\include\type_traits(1562): error : expected a ">"
1>      _INLINE_VAR constexpr bool _Is_specialization_v<_Template<_Types...>, _Template> = true;

可以肯定的是,为什么MSVC仍要使用include?重新安装没有导致任何更改。我根本不知道为什么会导致这个问题。有任何想法吗?

Lance Li-MSFT

关于收到的错误消息:

我想你也遇到了相同的问题像这样一个,在大多数时候这个问题是由导致不兼容之间Intel Parallel Studio XE versionVS version就像我在另一个线程中建议的那样,您需要安装更高版本的Intel Parallel Studio XE版本才能解决此问题。

可以肯定的是,为什么仍要使用MSVC include?重新安装没有导致任何更改。我根本不知道为什么会导致这个问题。有任何想法吗?

英特尔C ++编译器对VS进行了扩展。您可以在Tools=>Extensions and Updates以下位置检查它

在此处输入图片说明

同意阿德里安的观点I don't think Intel would want to 'take ownership' of MFC对于一个简单的C ++项目,如果我们将Intel C ++编译器设置为其编译器,那么到底会发生什么?让我们看一下项目文件(xx.vcxproj):

它集<PlatformToolset>Intel C++ Compiler 19.0</PlatformToolset>,并可以做一些其他的修改xx.vcxproj,但该项目仍然有这样的定义<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /><Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />在其项目文件。

因此,一些性能,有关MSVC的定义仍将在构建过程中导入。这就是为什么您收到的错误消息包含MSVC...

注意:

  1. MSbuild是VS的构建引擎,它读取的内容xx.vcxproj来编译和构建项目。

  2. 这里是许多任务,性质,对于普通的C ++构建过程中导入的目标文件,如定义项目Microsoft.Cpp.Default.props$(VCTargetsPath)\Microsoft.Cpp.targets等等。

  3. 当我们使用时right-click project=>Intel Compiler=>Use Intel C++,它更改了platformToolSet设置,但仍将xx.cpp.targets作为构建过程的一部分导入。这样您就可以看到有关MSVC或构建输出中的错误消息。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

这里有人对基准英特尔C ++编译器和GCC进行过测试吗?

使用英特尔实感保存流

英特尔C ++编译器-常量字符串可修改

为什么英特尔编译器会忽略英特尔MIC的非临时预取编译指示?

使用openmp时,英特尔C编译器给出错误的输出

英特尔TBB-'InitializeCriticalSectionEx':找不到标识符编译器错误

英特尔编译器(C ++)在std :: vector上具有OpenMP减少问题

英特尔编译器返回“预期的语句结尾时找到格式_元素”

有效使用英特尔编译器SVML`__m128 _mm_sincos_ps()`

英特尔Fortran编译器找不到模块`mpi`

英特尔Fortran编译器2015(Mac OS X)的TYPE(*)语法错误

英特尔编译器18.0工具集引发msbuild异常

英特尔C ++编译器:如何在宏定义/定义中编译和链接openmp编译指示?

英特尔编译器内联大小

英特尔编译器-错误:标识符“ alignof”未定义

英特尔Fortran编译器(ifort)禁止显示特定警告消息

如何使用英特尔Windows编译器在命令行上禁用C ++ 0x和/或C ++ 11?

英特尔C ++编译器给出“此平台不支持卸载结构”错误

为什么额外的-I标志(包含目录)会中断编译?(使用英特尔编译器)

英特尔编译器:将fortran编译库链接到C的主程序

英特尔Haxm安装错误

在哪里可以下载英特尔C ++编译器?

Visual Studio 中的英特尔编译器找不到 boost 库

使用 Eigen + 英特尔 MKL + Pardiso

使用狙击模拟器使用英特尔 TBB 程序

无法在 Windows 上使用英特尔编译器编译示例 boost::multiprecision

带有 gcc 7.1/8.1 的英特尔编译器 17.0

使用英特尔 Fortran 编译器编译独立的 DLL 文件

在 Windows 上使用英特尔 C++ 编译器无法执行程序