首页 > 解决方案 > 错误错误 C2872:“布尔”:kinect.h 的符号不明确

问题描述

VS19 更新到 16.3.8 后,我无法构建我的项目,并且收到以下错误:

C:\Program Files\Microsoft SDKs\Kinect\v2.0_1409\inc\Kinect.h(8574,28): error C2872: 'boolean': ambiguous symbol
C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\shared\rpcndr.h(193,23): message : could be 'unsigned char boolean'
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.23.28105\include\concepts(213,9): message : or 'bool std::boolean'

我试图检查 kinect.h 标头,但我没有修改它的权限,我不想弄乱我不熟悉的东西。它曾经在更新之前工作(VS19 16.0.0)。我还尝试清理、重新启动并仔细检查任何 using 命名空间,但错误仍然存​​在。

基于错误:

概念文件包括以下 行

#define _STL_BOOLEAN_CONCEPT boolean 

rpcndr.h

typedef unsigned char boolean; 

然后 kinect.h

virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_IsInertial( 
        /* [annotation][out][retval] */ 
        _Out_  boolean *value) = 0;

标签: c++kinect

解决方案


根据评论并将 C++ 语言标准设置为 C++ 17,我能够成功构建我的项目。


推荐阅读