gpt4 book ai didi

c++ - 编译错误,MinGW(g++),kinect for windows API

转载 作者:可可西里 更新时间:2023-11-01 09:39:18 25 4
gpt4 key购买 nike

Kinect 开发新手。我想使用 MinGW 作为我的 Kinect for windows 的开发环境。

我已经在c:\program files\Microsoft SDKS\kinect\v1.8下安装了Kinect for windows SDK。然后关注this example从 MSDN,我写了一个代码来初始化我的 Kinect 传感器。

当我编译时使用:

g++ -c color.c -I "c:\Program Files\Microsoft SDKs\Kinect\v1.8\inc"

我收到了一大堆警告和错误

  1. 警告

        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 适用于 Visual Studio,它们是可忽略的。

  2. 错误

    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是一个相关的页面:

最佳答案

有办法!下载 sal.hconcurrencysal.h(通过 Google 搜索找到它们)。将它们放在include目录下,并在程序中包含sal.h。
正如上面评论中提到的,添加标志 -std==c++11。
然后打开 NuiSkeleton.h,在第 412 行和第 534 行,将所有地方(所有实例)的 NULL 更改为 nullptr。
然后它应该可以正常运行。

关于c++ - 编译错误,MinGW(g++),kinect for windows API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19344331/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com