Conflit XLib : Unknown request in queue while dequeuing
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 :
Citation:
[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.
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();
J'ai donc ajouté ceci à mon programme dans le main :
Code:
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;
} |
Or, ce nouvel include me provoque une bonne cinquantaine d'erreurs de ce type :
Code:
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 |
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.
Dans dist.h il y a :
Code:
1 2 3 4 5 6 7 8
|
class True
{
};
class False
{
}; |
Et à partir de là je ne sais plus comment faire pour régler ce problème, qui semble être récurrent sous Ubuntu 11.
Avez-vous quelques idées ?
Merci d'avance et bonne journée