Ubuntuはbookとboot threadpoolをインストールします.

2165 ワード

最近はc++のlinuxアプリを書いていますが、スレッドの池を使って、スレッドの多くのコードを考えています.私はbookベースのbook threadpoolを選びました.
bootsをインストールします.私が選んだのはboots 1.51バージョンです.
1.bookのソースコードをダウンロードします.http://sourceforge.net/projects/boost/files/boost/1.51.0/
2.私はzipをダウンロードしました.ダウンロードが終わりました.zipを解凍して、bookのソースコードを獲得しました.
3.ソースのルートディレクトリ:
  ./bootstrap.sh   (デフォルトでは/usr/local/includeと/usr/local/libにインストール)
   sudo./b 2 install
4.インストール後にfailがあることを見たら、二つのパッケージをインストールしてください.
  「インストール中のヒント: patchlevel.h:そのファイルやディレクトリがありません.解決:sudo ap-get install python-dev
  「bzlib.h:そのファイルやディレクトリがありません.」解決:sudo appt-get install libz 2-dev
5.book threadpoolをダウンロードする:
    http://prdownloads.sourceforge.net/threadpool/threadpool-0_2_5-src.zip?download
6.threadpool解凍後、ソースのテストを行います.
  ソースの内容は:
#include <iostream>
#include "threadpool.hpp"

using namespace std;
using boost::threadpool::pool;

// Some example tasks
void first_task()
{
    cout << "first task is running
" ; } void second_task() { cout << "second task is running
" ; } void task_with_parameter(int value) { cout << "task_with_parameter(" << value << ")
"; } int main(int argc,char *argv[]) { // Create fifo thread pool container with two threads. pool tp(2); // Add some tasks to the pool. tp.schedule(&first_task); tp.schedule(&second_task); tp.schedule(boost::bind(task_with_parameter, 4)); // Wait until all tasks are finished. tp.wait(); // Now all tasks are finished! return(0); }
test.ccとして保存します
7.threadpool-0_2_5-src/threadpool/bookの下の一つのフォルダとヘッダファイルをtest.cディレクトリにコピーします.
8.コンパイルできます.
   g++test.cc-lbook_thread
   TIMEを発見しましたUTCは定義されていません.この問題はブックt 1.51のバージョンが、「TIMEuUTC」を「TIMEuUTC_」に変更したことに由来しています.threadpoolでエラーを報告したファイルに行って、このマクロの定義を後者に変えたらいいです.
9.コンパイルにより、a.out実行可能ファイルを生成します.
10.a.outを実行すると、エラーが発生します.error while loading shared libries:librost_thread.so.1.0:cannot open shared oject file:No such file or directory
11.一言を加える:
sudo ldconfig/usr/local/lib
12.プログラムを再実行し、OK.