【问题标题】:Using Nite 2 in a Qt 5 project在 Qt 5 项目中使用 Nite 2
【发布时间】:2014-01-07 05:14:03
【问题描述】:

我正在尝试在使用 Visual Studio 2012 的 Qt 5 项目中使用 Nite 2 制作 Kinect 骨架跟踪器。我在项目的属性中包含了所有必要的文件夹。 Qt 工作正常,但对 Nite 的初始化调用总是返回 STATUS_ERROR。我尝试在非 Qt 程序中初始化 Nite,它运行良好,所以问题似乎与 Qt 有关。我能够在 Qt 项目中初始化 OpenNI。

// main.cpp
int main(int argc, char* argv[])
{
    QApplication app(argc, argv);

    KinectWindow a;
    a.show();

    return app.exec();
}

// KinectWindow constructor
KinectWindow::KinectWindow(void)
    : QWidget()
{
    nite::Status status;

    status = nite::NiTE::initialize();

    if (status == nite::STATUS_ERROR)
    {
        exit(0);
    }

    else if (status == nite::STATUS_BAD_USER_ID)
    {
        exit(0);
    }

    else if (status == nite::STATUS_OUT_OF_FLOW)
    {
        exit(0);
    }
}

程序总是进入 if(status == nite::STATUS_ERROR)。我尝试将 REDIST 目录的内容复制到项目文件夹,但没有帮助。

【问题讨论】:

  • 你试过QtCreator中是否也返回上述错误吗?
  • 我尝试为 OpenNI 和 Nite 添加新库,但 Qt 仍然无法识别其中任何一个的头文件。
  • “Qt 仍然无法识别任何一个的头文件”是什么意思?
  • 它说没有这样的文件或目录。
  • 请按原样粘贴整个错误。另外,在 QtCreator 或 Visual Studio 中?

标签: qt openni nite


【解决方案1】:

问题是目前 Qt 5 不适用于 NiTE,但 Qt 4 可以。使用 Qt 4.8.5(在 Visual Studio 2010 中)可以正常工作。请注意,Qt 4 只有 32 位,因此您需要使用 32 位版本的 OpenNI 和 NiTE。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多