【问题标题】:How to install TBB from source on Linux and make it work如何在 Linux 上从源代码安装 TBB 并使其工作
【发布时间】:2012-05-30 09:22:27
【问题描述】:

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

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

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

谢谢。

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

【问题讨论】:

  • 你已经尝试了什么?有 TBB 的文件吗?最重要的是:什么是 TBB?你能说得更具体点吗?
  • @Gnosophilon 您可以将鼠标移到标签上并找出 TBB 是什么
  • ./configure;制作;须藤制作安装
  • 值得注意的是,在 Ubuntu 19.10 中,在sudo apt install:stackoverflow.com/questions/51031060/… 之后一切正常

标签: c++ linux compilation installation tbb


【解决方案1】:

我已经提供了解决方案。我会把它贴在这里,这样可以帮助其他人解决这个问题。

  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. 这应该可以正常工作!

最好的问候!

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

不要输入make,而是输入make compiler=clangmake compiler=clang stdlib=libc++

【讨论】:

  • 是的。这就是为什么你必须用-Wl 传递它,所以链接器“识别它”。这在 Ubuntu 和 Windows 中均使用 g++ 4.4g++ 4.7 进行了测试。我没有用新版本测试过。
  • 但 -W1 不是仅提供警告信息的选项吗?我没有写那个选项,所以我很好奇...... :)
  • 或者...等待它不是 W1 而是 Wl...l 作为“链接器”!!!是的!明白了!!!非常抱歉,非常感谢您
  • 哈哈。这很棘手吧?我也很难区分它们:D
  • 当您使用 Apple clang 5.1 版时,请输入 make,而不是输入 make compiler=clangmake compiler=clang stdlib=libc++
【解决方案2】:

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

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

【讨论】:

  • 谢谢!比英特尔的 git 发行版容易得多,后者无需安装。我建议也运行“make test”,以防万一。
  • 已安装,但我的运行时预计会找到缺少的 libtbb.so.2。
  • 我通过将以下行添加到/etc/ld.so.conf 来修复丢失的文件:/opt/intel/openvino_2021.1.110/deployment_tools/inference_engine/external/tbb/lib/,然后调用ldconfig
猜你喜欢
  • 1970-01-01
  • 2020-10-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多