2016-04-26 7 views
0

Ich habe eine Qt-Anwendung, die 2 Kinects über libfreenect steuert. Um auf die Kinects zuzugreifen, benutze ich einen Qt-Thread. Alles funktioniert perfekt bis jetzt. Aber ich brauche das Programm, um weiter zu arbeiten, wenn ein Kinect getrennt ist. Aber wenn das der Fall ist, bleibt das Programm im waitForNewFrame-Aufruf hängen, auch wenn ich einen Timeout-Parameter festlege. Die Dokumentation besagt, dass 'dieser Parameter ignoriert wird, wenn nicht mit C++ 11 Threading-Unterstützung' erstellt wird.Verwenden Sie libfreenects waitForNewFrame mit Timeout auf Qt

Was muss mit C++ 11 Threading-Unterstützung erstellt werden? Libfreenect oder meine Qt App?

Und wie baue ich mit C++ 11 Threading-Unterstützung?

Die Qt App ist mit qmake gebaut. Ich habe ein Global.pri, wo ich Compiler-Schalter definieren kann. Der Compiler klingelt, aber gcc sollte auch funktionieren.

Libfreenect ist in einem automatisierten Build-Skript erstellt. Es git-klont eine Verzweigung von libfreenect und führt aus:

cmake . 
make 
sudo make install 

Antwort

0

Ich habe die Ursache des Problems gefunden.

C++ 11 muss während der Kompilierung aktiviert werden, indem das -DENABLE_CXX11=ON Argument zum cmake Befehl hinzugefügt wird.