Kinect开发的新手。我想用MinGW作为我的Kinect for windows的开发环境。编译错误,MinGW(g ++),windows API的kinect
我已经在c:\ program files \ Microsoft SDKS \ kinect \ v1.8下安装了Kinect for windows SDK。然后在MSDN的this example之后,我写了一个代码来初始化我的Kinect传感器。
当我编译使用:
g++ -c color.c -I "c:\Program Files\Microsoft SDKs\Kinect\v1.8\inc"
我警告一大堆和错误
警告
In file included from NuiApi.h:109:0, from color.c:2: c:\Program Files\Microsoft SDKs\Kinect\v1.8\inc/NuiSensor.h:137:8: warning: extra tokens at end of # endif directive [enabled by default] #endif _Vector4_ ^ c:\Program Files\Microsoft SDKs\Kinect\v1.8\inc/NuiSensor.h:160:8: warning: extra tokens at end of # endif directive [enabled by default] #endif _Matrix4_ ^ c:\Program Files\Microsoft SDKs\Kinect\v1.8\inc/NuiSensor.h:209:8: warning: extra tokens at end of # endif directive [enabled by default] #endif _NUI_SKELETON_POSITION_INDEX_ ... ...
从我什么我已搜查,这些警告是由于Kinect SDK发生异常导致的编译器差异d的Visual Studio,他们是egnorable。
错误
NuiApi.h:47:5: error: definition of 'HRESULT NuiInitialize' is marked 'dllimport' NuiApi.h:47:5: error: '_In_' was not declared in this scope NuiApi.h:77:14: error: expected constructor, destructor, or type conversion before '(' token static_assert(E_NUI_FRAME_NO_DATA == 0x83010001, "Error code has changed."); ^ In file included from NuiApi.h:109:0, from color.c:2: c:\Program Files\Microsoft SDKs\Kinect\v1.8\inc/NuiSensor.h:2105:1: error: '_Check_return_' does not name a type _Check_return_ HRESULT NUIAPI NuiGetSensorCount(_In_ int * pCount); ^ ...(tons of _Check_return does not name a type) c:\Program Files\Microsoft SDKs\Kinect\v1.8\inc/NuiImageCamera.h:78:39: error: '_In_' was not declared in this scope c:\Program Files\Microsoft SDKs\Kinect\v1.8\inc/NuiImageCamera.h:78:70: error: '_Out_' was not declared in this scope
问题
我最了解这些错误的(如果不是全部)是因为Kinect的SDK适用于VS.但我是一个想知道更多关于底层内容的新手。那么,我可以让我的g ++与Kinect SDK一起工作吗? 任何帮助将不胜感激!
顺便说一句,here是相关的页面:
标题似乎有一些gcc不兼容:/。你必须使用'-std = C++ 11'标志(根据未被识别的'static_assert')。由于它是C++,因此使用C++扩展(如.cpp)而不是.c。请注意,图书馆也可能是不相容的: - /祝你好运。 – Jarod42
@ Jarod42感谢您的快速回放。我添加了-std == C++ 11,并且static_assert被识别了。我想大多数这些错误都与MICROSOFT源代码注释语言有关,我正在尝试。 – Sky