如何在Linux上从源代码安装TBB并使其工作

How to install TBB from source on Linux and make it work

本文关键字:TBB 工作 安装 源代码 Linux      更新时间:2023-10-16

我想知道如何从源代码安装TBB并使其在Linux系统上工作。 我在使用它时遇到了一些问题,如果我通过包管理器安装 TBB,这些问题不会出现。

在TBB网页中,有一些关于如何执行此操作的指南,例如设置LD_LIBRARY_PATHCPATH变量,或获取tbbvars.sh文件。即使我这样做,当我尝试编译一个示例时g++说找不到tbb

所以我的问题是,有没有一种简单的方法来设置所有内容(编译源代码,我应该设置哪些变量......(以便使用 TBB?

谢谢。

注意:问这个问题时的库版本号是 2(如果我没记错的话(。我已经亲自测试了直到 4.1 版的解决方案,但我认为它也适用于当前版本 4.2 (update 3),因为构建方法保持不变。

我已经有了解决方案。我将在此处发布它,以便它可以帮助其他人了解此主题。

  1. 下载最新的稳定源代码并解压缩,即~/tbbsrc

  2. 在里面,键入 make .它应该开始编译 tbb 库和内存分配器。

  3. 标头为~/tbbsrc/include

  4. ~/tbbsrc/build里面将有两个新文件夹,一个用于发布版本,另一个用于调试版本。这些文件夹的名称类似于 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. 这应该可以正常工作!

此致敬意!

苹果叮当 5.1 的安装:[感谢 rwols 提供的信息]

键入 make compiler=clangmake compiler=clang stdlib=libc++ 而不是键入 make

https://github.com/wjakob/tbb 似乎是要走的路。

git clone https://github.com/wjakob/tbb.git
cd tbb/build
cmake ..
make -j
sudo make install