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

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

提问人:Adri C.S. 提问时间:5/24/2012 最后编辑:Olivia StorkAdri C.S. 更新时间:6/7/2021 访问量:36117

问:

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

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

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

谢谢。

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

C++ Linux 编译 安装 tbb

评论

2赞 Gnosophilon 5/24/2012
你已经尝试了什么?TBB有文件吗?最重要的是:什么是TBB?你能说得更具体一点吗?
4赞 Stephan Dollberg 5/24/2012
@Gnosophilon 您可以将鼠标移到标签上并找出 TBB 是什么
0赞 5/27/2012
。/配置;做;sudo make 安装
0赞 Ciro Santilli OurBigBook.com 12/3/2019
值得注意的是,在 Ubuntu 19.10 中,这一切都可以在一个之后工作:stackoverflow.com/questions/51031060/...sudo apt install

答:

28赞 Adri C.S. 5/27/2012 #1

我带来了解决方案。我将在这里发布它,以便它对其他人的这个主题有所帮助。

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

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

  3. 标头位于~/tbbsrc/include

  4. 里面将有两个新文件夹,一个用于发布版本,另一个用于调试版本。这些文件夹的名称类似于 。~/tbbsrc/buildarchitecture_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_RELEASElibtbb.so

  1. 这应该可以正常工作!

此致敬意!

Apple clang 5.1 的安装:[感谢 rwols 提供的信息]

而不是键入 ,键入 或makemake compiler=clangmake compiler=clang stdlib=libc++

评论

1赞 Adri C.S. 10/11/2013
是的。这就是为什么你必须传递它,以便链接器“识别它”。这在 Ubuntu 和 Windows 中使用 和 进行了测试。我还没有用较新的版本测试过它。-Wlg++ 4.4g++ 4.7
0赞 Andry 10/11/2013
但是 -W1 不是一个选项,只是提供警告信息吗?我没有写那个选项,所以我很好奇...... :)
1赞 Andry 10/11/2013
或。。。等等,它不是 W1 而是 Wl...l 作为“链接器”!!是的!理解!!!对不起,非常感谢
1赞 Adri C.S. 10/11/2013
哈哈。这很棘手,嗯?我也很难区分它们:D
1赞 rwols 8/9/2014
当您使用的是 Apple clang 5.1 版时,不要键入 、 或 。makemake compiler=clangmake compiler=clang stdlib=libc++
11赞 Bob Baxley 6/2/2019 #2

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

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

评论

0赞 mathog 12/7/2019
谢谢!比英特尔的 git 发行版容易得多,后者没有安装。我建议也运行“make test”,以防万一。
0赞 Richard Whitehead 7/14/2021
这已安装,但我的运行时希望找到丢失的 libtbb.so.2。
0赞 Richard Whitehead 7/14/2021
我通过将以下行添加到 : 然后调用 ./etc/ld.so.conf/opt/intel/openvino_2021.1.110/deployment_tools/inference_engine/external/tbb/lib/ldconfig