Bonjour,
Je suis sur Ubuntu 11 et utilise QT4.7.3 avec QTCreator 2.2.1.
Dans une application multi-thread utilisant une classe héritant de QThread, et affichant des fenêtres OpenCV, j'obtiens parfois cette erreur qui interrompt mon programme :
Après quelques recherches, il semblerait que lorsque des threads sont susceptibles d'utiliser des éléments de XLib, il faille appeler avant toute création de thread, XInitthread();[xcb] Unknown request in queue while dequeuing
[xcb] Most likely this is a multi-threaded client and XInitThreads has not been called
[xcb] Aborting, sorry about that.
J'ai donc ajouté ceci à mon programme dans le main :
Or, ce nouvel include me provoque une bonne cinquantaine d'erreurs de ce type :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 ... #include <X11/Xlib.h> ... /** @function main */ int main( int argc, const char** argv ) { XInitThreads(); // Do something return 0; }
Après d'autres recherces, il semblerait que le souci apparaisse à cause des classes True et False dans dist.h, qui seraient en conflit avec d'autres classes du même nom quelque part.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 /usr/include/qt4/QtCore/qtextstream.h:60: error: #error qtextstream.h must be included before any header file that defines Status /usr/include/opencv2/flann/dist.h:82: error: expected unqualified-id before numeric constant
Dans dist.h il y a :
Et à partir de là je ne sais plus comment faire pour régler ce problème, qui semble être récurrent sous Ubuntu 11.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 class True { }; class False { };
Avez-vous quelques idées ?
Merci d'avance et bonne journée
Partager