14

TBBをソースからインストールしてLinuxシステムで動作させる方法を知りたいです。それを使用する際にいくつかの問題がありました。パッケージマネージャーを介してTBBをインストールしても表示されない問題です。

LD_LIBRARY_PATHTBB Webページには、およびCPATH変数の設定やファイルのソーシングなど、これを行う方法に関するいくつかのガイドラインがありtbbvars.shます。それをしても、コンパイルしようとすると、それが見つからないg++と言う例があります。tbb

だから私の質問は、TBBを使用するためにすべてをセットアップする(ソースコードをコンパイルする、どの変数を設定する必要があるか...)簡単な方法はありますか?

ありがとう。

注:この質問が行われたときのライブラリのバージョン番号は2でした(正しく思い出せば)。私はバージョン4.1までのソリューションを個人的にテストしましたが4.2 (update 3)、ビルド方法は同じであるため、現在のバージョンでも機能するはずです。

4

2 に答える 2

27

私は解決策を持ってきました。このトピックで他の人に役立つように、ここに投稿します。

  1. 最新の安定したソースコードをダウンロードして解凍します。~/tbbsrc

  2. 内部に、と入力しmakeます。tbbライブラリとメモリアロケータのコンパイルを開始する必要があります。

  3. ヘッダーは~/tbbsrc/include

  4. 内部~/tbbsrc/buildには2つの新しいフォルダーがあります。1つはリリースバージョン用で、もう1つはデバッグバージョン用です。これらのフォルダには、のような名前が付けられていますarchitecture_ldVersion_g++Version_kernelVersion

  5. たとえば、~/.bashrcファイルに次のような変数を設定することをお勧めします。

TBB_INSTALL_DIR = $HOME/tbbsrc
TBB_INCLUDE = $TBB_INSTALL_DIR/include
TBB_LIBRARY_RELEASE = $TBB_INSTALL_DIR/build/RELEASE_FOLDER
TBB_LIBRARY_DEBUG = $TBB_INSTALL_DIR/build/DEBUG_FOLDER
  1. 簡単な例を試してみましょう。
// main.cpp
#include "tbb/task_scheduler_init.h"

int main(int argc, char* argv[]) {
    // tbb::task_scheduler_init init(tbb::task_scheduler_init::automatic);
    // implicit tbb::task_sheduler_init::automatic
    tbb::task_scheduler_init init;
    return 0;
}
  1. たとえば、リリースバージョンでコンパイルするには:
g++ main.cpp -I$TBB_INCLUDE -Wl,-rpath,$TBB_LIBRARY_RELEASE -L$TBB_LIBRARY_RELEASE -ltbb

注:を使用-Wl,-rpath,$TBB_LIBRARY_RELEASEすると、動的リンカーにどこを見つけるかを指示しますlibtbb.so

  1. そして、それはうまくいくはずです!

よろしくお願いします!

Apple clang 5.1のインストール: [情報を提供してくれたrwolsに感謝します]

入力する代わりにmakemake compiler=clangまたはを入力しますmake compiler=clang stdlib=libc++

于 2012-05-26T19:27:33.047 に答える