编译安装:

wget https://codeload.github.com/01org/tbb/tar.gz/2019_U3
tar zxvf 2019_U3
cd tbb-2019_U3
make
cd build
chmod +x *.sh
sh generate_tbbvars.sh
sh tbbvars.sh
cd linux_intel64_gcc_cc5.3.0_libc2.17_kernel3.10.0_release/
cp *.so /usr/lib
cp *.so.2 /usr/lib
/sbin/ldconfig
cd ../../include/tbb
cp -r * /usr/local/include/

验证:

cd ../../examples/pipeline/square
make
# 将会有如下输出
g++ -O2 -DNDEBUG  -o square square.cpp gen_input.cpp -ltbb -lrt
./square 0 input.txt output.txt
serial run   time = 0.231806
parallel run time = 0.0378598
elapsed time : 0.416428 seconds

验证过程中可能出现如下错误:

lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found

原因是升级gcc时,新版本的动态库没有替换老版本的动态库,所以只需要用新版本的动态库替换老版本的动态库就能解决问题。
查看GLIBCXX的版本:

strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX
# 可能会有如下输出,没有需要的CLIBCXX_3.4.20版本
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBCXX_DEBUG_MESSAGE_LENGTH

查看libstdc++.so.6链接的版本:

ll /usr/lib64/libstdc++.so.6
# 可能会有如下输出,这里链接的是libstdc++.so.6.0.19
lrwxrwxrwx 1 root root 19 Oct 15 16:21 /usr/lib64/libstdc++.so.6 -> libstdc++.so.6.0.19

查找系统中更高版本的libstdc++库:

find / -name libstdc++.so.6*
# 可能会有如下输出,有更高版本的libstdc++.so.6.0.21
/usr/local/lib64/libstdc++.so.6
/usr/local/lib64/libstdc++.so.6.0.21
/usr/local/lib64/libstdc++.so.6.0.21-gdb.py
/usr/local/gcc-5.3.0/lib64/libstdc++.so.6
/usr/local/gcc-5.3.0/lib64/libstdc++.so.6.0.21
/usr/local/gcc-5.3.0/lib64/libstdc++.so.6.0.21-gdb.pyc
/usr/local/gcc-5.3.0/lib64/libstdc++.so.6.0.21-gdb.pyo
/usr/local/gcc-5.3.0/lib64/libstdc++.so.6.0.21-gdb.py
/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.pyo
/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.pyc
/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.py
/usr/lib64/libstdc++.so.6.0.19
/usr/lib64/libstdc++.so.6

查看libstdc++.so.6.0.21的GLIBCXX的版本:

strings /usr/local/lib64/libstdc++.so.6.0.21 | grep GLIBCXX
# 可能会有如下输出,这里有我们需要的GLIBCXX_3.4.20
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBCXX_3.4.20
GLIBCXX_3.4.21
GLIBCXX_DEBUG_MESSAGE_LENGTH
...
GLIBCXX_3.4.21
GLIBCXX_3.4.5
GLIBCXX_3.4.9
_ZSt10adopt_lock@@GLIBCXX_3.4.11
GLIBCXX_3.4.10
GLIBCXX_3.4.16
GLIBCXX_3.4.1

进行重新链接:

cp /usr/local/lib64/libstdc++.so.6.0.21 /usr/lib64/libstdc++.so.6.0.21
rm -f /usr/lib64/libstdc++.so.6
ln -s /usr/lib64/libstdc++.so.6.0.21 /usr/lib64/libstdc++.so.6

Linux安装Intel Threading Building Blocks(TBB)的更多相关文章

  1. Intel® Threading Building Blocks (Intel® TBB) Developer Guide 中文 Parallelizing Data Flow and Dependence Graphs并行化data flow和依赖图

    https://www.threadingbuildingblocks.org/docs/help/index.htm Parallelizing Data Flow and Dependency G ...

  2. Ubuntu14.04安装intel集显驱动

    Ubuntu14.04安装intel集显驱动 标签(空格分隔): ubuntu linux 驱动安装 1.查看本机显卡型号 使用lspci命令来获取PCI接口硬件信息 o@o-pc:~$ lspci ...

  3. Linux安装程序Anaconda分析

    1.概述     Anaconda是RedHat.CentOS.Fedora等Linux的安装管理程序.它能够提供文本.图形等安装管理方式,并支持Kickstart等脚本提供自己主动安装的功能.此外, ...

  4. 20165223 Linux安装及命令入门

    预备作业3:Linux安装及命令入门 一.VirtualBox和Ubuntu的安装 通过学习实践基于VirtualBox虚拟机安装Ubuntu图文教程,我开始学习虚拟机的安装,根据教程一步步试着安装. ...

  5. Centos 02 操作系统 & Linux安装

    操作系统的概念 操作系统是沟通使用者和硬件之间传递信息的工具或程序,是电子计算机系统负责支撑应用程序运行环境以及用户操作环境的基础系统软件 硬件 ==> 系统核心 ==> 命令解释器she ...

  6. 20165237 预备作业3 Linux安装及学习

    Linux安装及学习 安装 对操作系统略知一二的我,按照老师发的基于VirtualBox虚拟机安装Ubuntu图文教程慢慢一步步往下做,虽然中间有些小困难,但最终都得以解决,安装成功. 遇到的小困难: ...

  7. 20165315 预备作业3 Linux安装及学习

    20165315 预备作业3 Linux安装及学习 一.在自己笔记本上安装Linux操作系统 因为对操作电脑的不熟悉,我在第一项任务上就花费了一定的时间,在安装过程有如下问题: 我的电脑是苹果公司的M ...

  8. 20165318 预备作业3 Linux安装及学习

    Linux安装及学习 一.VirtualBox和Ubuntu的安装 我安装的是VirtualBox 5.2.6和Ubuntu 16.04 LTS,安装过程按照老师博客中的步骤依次进行,出现了以下几个问 ...

  9. 20155327预备作业3:Linux安装及命令入门

    20155327预备作业3:Linux安装及命令入门 安装Linux操作系统 由于之前安装过所以这里就不再赘述了 掌握Linux命令的学习方法 学习路径: 常用Ubuntu快捷键: CTRL+ALT+ ...

随机推荐

  1. 什么是真正的Java技术,本篇文章让你了解

    “你学习一门技术的最佳时机是三年前,其次是现在.”这句话对于哪一种行业都很适用,如果你已经学习过Java,那么恭喜你你很有先见之明,如果你并不了解Java,这篇文章带你快速掌握Java的几个核心知识点 ...

  2. 使用python调用其他脚本

    cmd = '<command line string>' print(cmd) p = subprocess.Popen(args=cmd, shell=True, stdout=sub ...

  3. C编程中printf不加'\n'不输出

    有时,使用printf("a=%d",a);并不一定会输出显示,只有当在格式化输出时加上'\n'才能输出,如printf("a=%d\n",a); 由于unix ...

  4. 精读《C++ primer》学习笔记(第一至三章)

    第一章: 重要知识点: 类型:一种类型不仅定义了数据元素的内容,还定义了这类数据上可以进行的运算:所以说类定义,实际上就是定义了一种数据类型: >>和<<运算符返回其左侧的运算 ...

  5. MySQL 设置root密码报错:mysqladmin: connect to server at 'localhost' failed

    MySQL 设置root密码报错:mysqladmin: connect to server at 'localhost' failed 1.安装完MySQL设置root密码报错如下 [root@vm ...

  6. html5课件外包-----swf/AS2/AS3/fla/ppt课件如何转换为html5交互课件/动画

    随着Adobe公司公布2020年将不再更新和维护flash,flash逐渐被html5取代,很多教育机构都在面临着如何将自己的flash交互课件产品转换到html5版本的问题,最近遇到非常多的客户一上 ...

  7. C# Xamarin开发 GenyMotion adb List of devices attached

    最近,公司要求要学习Xamarin,说是将来用到PDA上,所以最近对XaMarin开始接触,16年的时候就听说.Net开始着实跨平台,安卓和IOS,但是网上看过很多资料都说Xamarin比较坑,一般的 ...

  8. Python高级变量类型

    1.列表基础操作 2.列表循环遍历 3.元组 4.字典基础操作 5.字典循环遍历 6.字符串基础操作 7.字符串切片 8.公共方法

  9. 公司-半导体:Micron

    ylbtech-公司-半导体:Micron 美光科技有限公司(Micron Technology, Inc.)是高级半导体解决方案的全球领先供应商之一.通过全球化的运营,美光公司制造并向市场推出DRA ...

  10. 转载:MySQL看这一篇就够了

    No.1 数据库概念 什么是数据库? 数据库就是一种特殊的文件,内部存储着需要的数据 RDBMS 所谓关系数据库,是建立在关系模型基础的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据 SQ ...