如何在Linux上从源代码安装TBB并使其正常工作 [英] How to install TBB from source on Linux and make it work

查看:366
本文介绍了如何在Linux上从源代码安装TBB并使其正常工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I would like to know how to install TBB from source and make it work on a Linux system. I have had some problems when it comes using it, problems that don't appear if I install TBB via the package manager.

在TBB网页上,有一些有关如何执行此操作的准则,例如设置LD_LIBRARY_PATH和CPATH变量,或采购 tbbvars.sh 文件.即使这样做,当我尝试编译示例时, g ++ 却说未找到 tbb .

In the TBB webpage, there are some guidelines on how about to do this, like setting the LD_LIBRARY_PATH and CPATH variables, or sourcing the tbbvars.sh file. Even if I do that, when I try to compile an example g++ says that tbb is not found.

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

So the question is if it's an easy way on how to setup everything(compile the source code, what variables should I set...) in order to use TBB.

谢谢.

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

NOTE: The library version number when this question was asked was 2 (if I recall correctly). I have personally tested the solution up to version 4.1, but I think it should work too for current version 4.2 (update 3) since the building method remains the same.

推荐答案

我提供了解决方案.我将其张贴在这里,以帮助其他人解决这个问题.

I have come with the solution. I'll post it here so it will help others with this topic.

1)下载最新的稳定源代码并解压缩,即在〜/tbbsrc中

1) Download the latest stable source code and uncompress it, i.e in ~/tbbsrc

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

2) Inside, type make. It should start compiling the tbb library and the memory allocators.

3)标头位于〜/tbbsrc/include

3) The headers are in ~/tbbsrc/include

4)〜/tbbsrc/build内部将有两个新文件夹,一个用于发行版本,另一个用于调试版本.这些文件夹的名称类似于"architecture_ldVersion_g ++ Version_kernelVersion".

4) Inside ~/tbbsrc/build will be two new folders, one for the release version and the other for the debug version. Those folders are named like "architecture_ldVersion_g++Version_kernelVersion".

5)我建议设置一些变量,例如在.bashrc文件中,例如:

5) I recommend setting some variables, for example in the .bashrc file, like:

  1. TBB_INSTALL_DIR = $ HOME/tbbsrc
  2. TBB_INCLUDE = $ TBB_INSTALL_DIR/include
  3. TBB_LIBRARY_RELEASE = $ TBB_INSTALL_DIR/build/RELEASE_FOLDER
  4. TBB_LIBRARY_DEBUG = $ TBB_INSTALL_DIR/build/DEBUG_FOLDER

6)让我们尝试一个简单的示例:

6) Let's try a simple example:

// 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;
}

7)例如,使用发行版进行编译:

7) To compile, for example, with the release version:

g++ main.cpp -I$TBB_INCLUDE -Wl,-rpath,$TBB_LIBRARY_RELEASE -L$TBB_LIBRARY_RELEASE -ltbb

使用-Wl,-rpath,$TBB_LIBRARY_RELEASE,我们告诉动态链接器在哪里可以找到libtbb.so

With -Wl,-rpath,$TBB_LIBRARY_RELEASE we are telling the dynamic linker where to find libtbb.so

8)那应该可以正常工作!

8) And that should work fine!

最诚挚的问候!

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

Installation for Apple clang 5.1: [thanks to rwols for the info]

键入make compiler=clangmake compiler=clang stdlib=libc++

这篇关于如何在Linux上从源代码安装TBB并使其正常工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆