我试图找出原因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?重新安装没有导致任何更改。我根本不知道为什么会导致这个问题。有任何想法吗?
关于收到的错误消息:
我想你也遇到了相同的问题像这样一个,在大多数时候这个问题是由导致不兼容之间Intel Parallel Studio XE version
和VS 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
...
注意:
MSbuild是VS的构建引擎,它读取的内容xx.vcxproj
来编译和构建项目。
这里是许多任务,性质,对于普通的C ++构建过程中导入的目标文件,如定义项目Microsoft.Cpp.Default.props
,$(VCTargetsPath)\Microsoft.Cpp.targets
等等。
当我们使用时right-click project=>Intel Compiler=>Use Intel C++
,它更改了platformToolSet设置,但仍将xx.cpp.targets作为构建过程的一部分导入。这样您就可以看到有关MSVC或构建输出中的错误消息。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句