TBB,Thread Building Blocks,线程构建模块,是Intel公司开发的并行编程开发的工具。其提供C++模版库,用户不必关注线程,而专注任务本身。抽象层仅需很少的接口代码,性能上毫不逊色。且能够灵活地适合不同的多核平台,适合于跨平台的移植(如Linux, Windows, Mac)


1)在官网下载tbb源码,如下载tar.gz格式
        tar -zxvf tbbxx.tar.gz


2)进入解压缩目录下,执行make。

若编译期间报出以下错误:

/tmp/ccxNhOc9.s: Assembler messages:
/tmp/ccxNhOc9.s:615: Error: no such instruction: `xtest'
/tmp/ccxNhOc9.s:643: Error: no such instruction: `xabort $255'
/tmp/ccxNhOc9.s:652: Error: no such instruction: `xabort $255'
/tmp/ccxNhOc9.s:658: Error: no such instruction: `xend'
/tmp/ccxNhOc9.s:825: Error: no such instruction: `xbegin .L56'
/tmp/ccxNhOc9.s:988: Error: no such instruction: `xbegin .L71'
/tmp/ccxNhOc9.s:1216: Error: no such instruction: `xabort $255'
make[1]: *** [x86_rtm_rw_mutex.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make[1]: Leaving directory `/user_data/.tmp/linux_intel64_gcc_cc4.9.1_libc2.12_kernel2.6.32_debug'
make: *** [tbb] Error 2

    则表明当前的gcc编译器不支持-mrtm。则可行的方案是注释以下几行。打开tbb目录build/linux.gcc.inc文件,注释以下几行。

# gcc 4.8 and later support RTM intrinsics, but require command line switch to enable them
ifneq (,$(shell gcc -dumpversion | egrep  "^4\.[8-9]"))RTM_KEY = -mrtm
#endif

然后重新编译 make即可。


3)添加tbb变量

cd build
chmod +x *.sh
sh generate_tbbvars.sh
sh tbbvars.sh

4)将.so库移至/usr/lib,将头文件移至 /usr/local/include

cd linux_intel64_gcc_你的版本_release
cp *.so /usr/lib
cp *.so.2 /usr/lib
/sbin/ldconfig
//回到解压缩目录下
/usr/local/include
//将头文件移至 /usr/local/include
cd include
cp *.* /usr/local/include

5)接下来检验tbb是否安装成功

cd ../examples/pipeline/square
make

如果是下面的提示,则表示tbb环境配置成功

g++ -O2 -DNDEBUG  -o square square.cpp gen_input.cpp -ltbb -lrt
./square 0 input.txt output.txt
serial run   time = 0.249843
parallel run time = 0.0304956
elapsed time : 0.399366 seconds

Linux下TBB安装及编译相关推荐

  1. Linux下boost库的编译、安装详解

    1.下载源文件 去官网下载:http://www.boost.org/ 这里下载最新版本 wget https://dl.bintray.com/boostorg/release/1.64.0/sou ...

  2. linux下源代码安装f90,linux下编译fortran linux安装gfortran

    linux上面如何编译fortran源代码? 格式:ifort要编译的文件名-0指定生成的文件名 如我要把123.f文件编译 ifort123.f-o123.e 如果不加指定生成的文件名,系统会自动生 ...

  3. linux tomcat 安装教程,关于Linux下配置安装Tomcat8的步骤

    由于Centos6即将停止更新,本次就使用Centos7.5 X64位系统来演示,Tomcat版本就使用8.5,如果想使用9.0的版本也可以去官网进行下载,步骤都大同小异. 关于Tomcat9的新特性 ...

  4. Linux 下如何安装软件?

    http://zhidao.baidu.com/link?url=OkQCOZtVMXhasC8x9zFTZOumsFKf0WW25Ckr2wBF1xO08EsjrBpnMaTBlIAUYdxZ408 ...

  5. Linux 下 Redis 安装教程

    Linux 下 Redis 安装教程 事先准备 下载 Redis 安装 Redis 设置 Redis 开机自启动 远程访问 Redis RDM 远程访问 Redis 笔者的运行环境: CentOS S ...

  6. linux下成功安装ffmpeg( 亲测有效 )

    linux下成功安装ffmpeg( 亲测有效 ) 一.下载 二.安装步骤 1.安装yasm 2.安装ffmpeg 总结 一.下载 ffmpeg 官网下载: http://ffmpeg.org/down ...

  7. linux下的安装:openssl

     openssl简介 openssl是一个功能丰富且自包含的开源安全工具箱.它提供的主要功能有:SSL协议实现(包括SSLv2.SSLv3和TLSv1).大量软算法(对称/非对称/摘要).大数运算.非 ...

  8. Linux_ppc下软件包安装,Linux下软件包安装详解

    一.概述 现在Linux上软件的安装方式有多种,有源码包编译,软件包管理器,软件包管理器前端工具,通用二进制编译等.源码包,优点是,灵活性和可定制性比较好,缺点是,技术要求高,操作复杂,虽然网上有编译 ...

  9. linux下装输入法,linux下输入法安装

    来源:http://www.cd200.com/content_263715.html linux下输入法安装 //使用如下命令解压 $ tar jxvf fcitx-3.1.bin.tar.bz2 ...

最新文章

  1. 帆软填报增加记录提交成功后没有_大病医疗填报图解
  2. 沈阳农业大学计算机往年录取分数6,沈阳农业大学历年分数线 2021沈阳农业大学录取分数线...
  3. 强化学习中的脉冲神经网络
  4. find: paths must precede expression(转)
  5. android源生setting华为,Android 设置默认桌面,默认应用,辅助功能,电池优化,设备管理器,悬浮窗等...
  6. Python 调用C函数
  7. Android Service学习之IntentService 深入分析
  8. Visual Studio 即时窗口实用技巧
  9. 使用Maven实施自定义JSF 2.0组件
  10. unity 继承了 获取_为什么说Unity能用单纯脚本实现的功能,尽量避免继承MonoBehavior,保持纯粹性?...
  11. 记一次git硬reset导致的代码消失
  12. 【mysql基础知识】查询当前时间之前5分钟内的数据
  13. java 字体有哪些_java字体有哪些
  14. php sql 长字符串 查找被包含的短字符串_PHP字符串
  15. 怎么查看本机的IP地址
  16. 项目管理 计算机仿真,刘宝林老师【项目管理】《挑战埃及》沙盘课程内容分享...
  17. Ontrack EasyRecovery15英文版数据恢复软件
  18. 基于python的计算基因组_【ROSALIND】【练Python,学生信】05 计算DNA序列GC含量
  19. 显色指数(CRI)计算软件-升级版可视化界面
  20. 泽勒的一致性,计算一周的星期几

热门文章

  1. 网格计算Grid Computing
  2. word文档加密经验实战分享
  3. 应用程序日志管理工具
  4. 使用java对文件夹中文件后缀进行修改
  5. Hibernate实战——双向N-N关联
  6. Tool:Visio2016/Visio2019专业版64位中文下载、安装(图文教程)之详细攻略
  7. BloomFilter在Drois中的应用
  8. xilinx 权威设计指南_设计产品指标的权威指南
  9. 《Hadoop 权威指南》读书笔记之七 — chapter7
  10. 蓝牙HC05模块,AT其他指令爆出ERROR[0] 解决方法