c1xx : warning C4199: C++/CLI、C++/CX 或 OpenMP 不支持两阶段名称查找;请使用 /Zc:twoPhase-

VS2017编译项目,报错如下:


2>c1xx : warning C4199: C++/CLI、C++/CX 或 OpenMP 不支持两阶段名称查找;请使用 /Zc:twoPhase-

2>c:\program files (x86)\microsoft visual studio\2017\enterprise\vc\tools\msvc\14.16.27023\include\msclr\marshal.h(222): error C3861: “_This_conversion_is_not_supported”: 找不到标识符

2>c:\program files (x86)\microsoft visual studio\2017\enterprise\vc\tools\msvc\14.16.27023\include\msclr\marshal.h(224): note: 参见对正在编译的 类 模板 实例化 "msclr::interop::error_reporting_helper<_To_Type,_From_Type,false>" 的引用

2>c:\program files (x86)\microsoft visual studio\2017\enterprise\vc\tools\msvc\14.16.27023\include\msclr\marshal.h(233): error C3861: “_This_conversion_requires_a_context”: 找不到标识符

2>c:\program files (x86)\microsoft visual studio\2017\enterprise\vc\tools\msvc\14.16.27023\include\msclr\marshal.h(235): note: 参见对正在编译的 类 模板 实例化 "msclr::interop::error_reporting_helper<_To_Type,_From_Type,true>" 的引用


项目背景:


C++项目,打开了/clr选项,使用了.net里面的dll库


分析:


two-phase name lookup应该是一个关于C++模板的功能,错误提示应该是说它不支持C++/CLI, C++/CX, or OpenMP。


我的工程里面主要是c语言的代码,引用了一些C++的类库,然后并没有使用C++的模板,所以我把two-phase name lookup关闭就好了。


解决步骤:


项目->属性->C/C++->语言->符合模式:否


上一篇:apache和iis发布网站防火墙设置


下一篇:ML之SVM:利用Js语言设计SVM算法(SMO算法+线性核/高斯核)