2012-03-18 11 views
0

私はブーストライブラリの初心者です。答えが明らかな場合は、私を許してください。ここに私のコードです。私は次のことを受け取る構築しようとするとブーストを使用してスレッドを作成する方法

#include <iostream> 
#include <boost/thread.hpp> 

using namespace std; 

void task1(void) 
{ 
    cout << "There" << endl; 
} 

int main() 
{ 
boost::thread mythread(task1); 
cout << "Hi" << endl; 
} 

/mythread1.cpp:13: undefined reference to `boost::thread::~thread()' 

それは私が単にスレッドを宣言した場合、後押し::スレッドmythreadを(コンパイル)。

提案がありますか?私は、task1()を完了するためにこのスレッドを宣言して起動するための構文を知る必要があります。

件名から返信はしないでください。私の質問は簡単です。ご協力いただきありがとうございます。 EclipseとBoost 1.42を使用しているBtw、Im

+2

あなたのプログラムは正常にコンパイルされます。 boost threading libは、ほとんどのboostのようにヘッダのみではなく、ビルドする必要のあるライブラリです。あなたはそれを構築したか、あるいはプリコンパイルされたバージョンを持っていますか?正しくリンクしていますか? – Rolle

+0

まず、このプログラムのコンパイルとリンクにはどのようなコマンドを使用していますか?第二に、作業が終了する前に終了しないようにプログラムを修正する必要があります。 ( 'main'から返ってくると、暗黙のうちにプロセスが終了します。) –

+0

Thanks Rolle、David。いいえ、私はそれを構築していません。あなたはチュートリアルを教えてくれますか?私はEclipseを使用しており、私はシナプスからのブーストをインストールしました。 Eclipseの私のプロジェクトからは、すべてのブースト・ファイルを含むインクルード・パスが表示されますが、リンクやビルドの方法や自分のプロジェクトで使用できるようにする方法はわかりません。 – user1277564

答えて

0

ブーストスレッドを使用すると、ブーストスレッドライブラリをリンクする必要があります。 あなたのコードでは、結合がありません(スレッドのドキュメントを参照してください)

+0

私たちのためにスレッド文書をリンクしてみませんか? – ForceMagic

関連する問題