在 Qt 上使用带有超时的 libfreenects waitForNewFrame

Use libfreenects waitForNewFrame with timeout on Qt

我有一个 Qt 应用程序,它通过 libfreenect 控制 2 个 Kinect。为了访问 Kinect,我使用了一个 Qt 线程。到目前为止一切正常。但是当一个 Kinect 断开连接时,我需要程序继续工作。但如果是这样,程序就会卡在 waitForNewFrame 调用中,即使我指定了超时参数也是如此。文档说,“如果不使用 C++11 线程支持构建,则忽略此参数”。

必须使用 C++11 线程支持构建什么? Libfreenect 还是我的 Qt 应用程序?

以及如何使用 C++11 线程支持进行构建?

Qt 应用程序是使用 qmake 构建的。我有一个 Global.pri 可以在其中定义编译器开关。编译器是 clang,但 gcc 应该也可以。

Libfreenect 是在自动构建脚本中构建的。它 git-克隆 libfreenect 的一个分支并执行:

cmake .
make
sudo make install

我找到了问题的原因。

C++11 需要在编译期间启用,方法是将 -DENABLE_CXX11=ON 参数添加到 cmake 命令。