#include <boost/thread/thread.hpp>
#include <iostream>
using namespace std;
void hello() {
cout << "Hello world, I'm a thread!" << endl;
}
int main(int argc, char* argv[]) {
cout << "!!!Hello World!!!" << endl; // prints !!!Hello World!!!
boost::thread thrd(&hello);
thrd.join();
return 0;
}
Microsoft Visual Studio Express Edition でテストしたので、上記のコードに問題はないと確信しています。しかし、Eclipse ではコンパイルできません。
私は Windows マシンでこれを行っています。MinGW ツールチェーンで Eclipse Kepler を使用しています。D:/tool/boost_1_54_0
このコマンドでこのディレクトリにブーストをインストールし./b2 install --with-thread --libdir=stage/lib --includedir=stage/include --build-type=complete stage toolset=msvc
ます。セクション (プロジェクト プロパティ > C/C++ ビルド > 設定 > MinGW C++ リンカー > ライブラリ)で追加のインクルード ディレクトリ、ライブラリ パス、およびスレッド ライブラリを構成しboost_thread-vc110-mt-1_54
ましlibboost_system-vc110-mt-1_54
たか?Libraries (-l)
これはコンパイルの出力ですが、何か手がかりはありますか?
15:52:07 **** Incremental Build of configuration Debug for project Cpp2 ****
Info: Internal Builder is used for build
g++ "-LD:\\tool\\boost_1_54_0\\stage\\lib" -o Cpp2.exe "src\\Cpp2.o" -llibboost_thread-vc110-mt-1_54 -llibboost_system-vc110-mt-1_54
src\Cpp2.o: In function `_static_initialization_and_destruction_0':
D:/tool/boost_1_54_0/boost/system/error_code.hpp:222: undefined reference to `boost::system::generic_category()'
D:/tool/boost_1_54_0/boost/system/error_code.hpp:223: undefined reference to `boost::system::generic_category()'
D:/tool/boost_1_54_0/boost/system/error_code.hpp:224: undefined reference to `boost::system::system_category()'
src\Cpp2.o: In function `thread_exception':
D:/tool/boost_1_54_0/boost/thread/exceptions.hpp:51: undefined reference to `boost::system::system_category()'
src\Cpp2.o: In function `thread_data_base':
D:/tool/boost_1_54_0/boost/thread/win32/thread_data.hpp:123: undefined reference to `vtable for boost::detail::thread_data_base'
src\Cpp2.o: In function `ZN5boost6thread12start_threadEv':
D:/tool/boost_1_54_0/boost/thread/detail/thread.hpp:180: undefined reference to `boost::thread::start_thread_noexcept()'
src\Cpp2.o: In function `~thread':
D:/tool/boost_1_54_0/boost/thread/detail/thread.hpp:255: undefined reference to `boost::thread::detach()'
src\Cpp2.o: In function `ZN5boost6thread4joinEv':
D:/tool/boost_1_54_0/boost/thread/detail/thread.hpp:751: undefined reference to `boost::thread::get_id() const'
D:/tool/boost_1_54_0/boost/thread/detail/thread.hpp:751: undefined reference to `boost::this_thread::get_id()'
D:/tool/boost_1_54_0/boost/thread/detail/thread.hpp:756: undefined reference to `boost::thread::join_noexcept()'
src\Cpp2.o: In function `~thread_data':
D:/tool/boost_1_54_0/boost/thread/detail/thread.hpp:91: undefined reference to `boost::detail::thread_data_base::~thread_data_base()'
collect2: ld returned 1 exit status