2011-07-26 14 views
1

Qtとブーストの両方を使ってコードを書いています。QT +ブーストスレッドが動作しない

私はメインスレッドで起動する必要があり、そう、私はブースト(ないQThread)を使用して、別のスレッドでいくつかのコードを実行しようとしているそのqtのウィンドウを知っています。

問題は、qtウィンドウを起動せずにコードを実行すると、問題なく動作しますが、app.exec()を呼び出すと、別のスレッド(ブースト1)が機能しなくなります。私は何が起きているのか、何か手がかりを知らないのですか?

QApplication app(argc, argv); 
QMainWindow window; 

//creating a separated thread and starting up 
boost::thread thr1(boost::bind(&X::x, &a)); 

//if we join, it works 
//thr1.joing() 

//but if I run the following lines, my thr1 freezes 
window.show(); 
app.exec(); 
+0

どのようにブーストスレッドをリンクしますか?静的にリンクすると、ウィンドウにいくつかの問題があることがわかります。 –

+0

CMakeLists.txtでcmakeを使用してリンクしています TARGET_LINK_LIBRARIES(プロジェクト$ {Boost_LIBRARIES}) これは動作しません。qt = –

答えて

0

問題は私のブーストの実装にありました。私はそれを再コンパイルし直しました

関連する問題