在 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
命令。
我有一个 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
命令。