私のマシンにBoostをインストールしました。私はVisual Studio 2010 Ultimateで作業しています。 Boostをインストールするには、私はここに指示に従いました:http://www.boost.org/doc/libs/1_48_0/more/getting_started/windows.html。特に、次の行: "BoostPro Computingが提供するインストーラは、コンパイル済みのバイナリをダウンロードし、boostルートのlib \サブディレクトリにインストールします"。だから私は自分のマシンでboost_1_47を実行していることがわかりました。そして私はboost :: threadライブラリで遊ぶ少しのテストプログラムを始めました。しかし後押しする導入の最初のサンプルコードで、このコード::スレッドがコンパイルされません。ブーストスレッドを使用している場合は、半分しか動作しません
#include <boost/thread.hpp>
boost::thread make_thread();
void f()
{
boost::thread some_thread = make_thread();
some_thread.join();
}
int main()
{
f();
return 0;
}
これはエラーメッセージです:
error LNK2019: unresolved external symbol "class boost::thread __cdecl make_thread(void)" ([email protected]@[email protected]@@XZ) referenced in function "void __cdecl f(void)" ([email protected]@YAXXZ)
しかし、このコードはコンパイルされます。
#include <boost/thread.hpp>
void testFunction()
{
}
int main()
{
boost::thread_group group;
group.create_thread(&testFunction);
group.join_all();
return 0;
}
上記のコードは、一部のフォーラムエントリからコピー/貼り付けられています。しかし、このすべての理由は何ですか? make_thread()はバージョン47ではサポートされていませんか?もしそうなら、なぜリンカだけがそれに不平を言うのですか?私は何が欠けていますか?
EDIT:この質問をしたため
私の謝罪、私はそれは難しい認めることを見つけるが、これはカテゴリRTFMに属します。しかし、これについては不安を感じる:以下の答えを読んでください。