文章目录

  • 写在前面
  • 一、下载
  • 二、编译
  • 三、安装
  • 参考链接

写在前面

自己的测试环境是 Ubuntu16.04.
由于ubuntu版本的的限制,使用 ubuntu 的二进制指令 sudo apt-get install libtbb-dev
进行安装 tbb 的版本较低。Ubuntu16.04 二进制安装的 tbb 版本是 4.4~20151115-0ubuntu3,Ubuntu18.04 二进制安装的 tbb 版本是 2017~U7-8.
此教程同样适用于 ubuntu 18.

一、下载

  1. 下载源码
    从github 上下载 tbb源码 ,我这里下载 2020_U3 版本。

二、编译

解压

tar -zxvf oneTBB-2020_U3.tar.gz

因为要使用 gcc-9 进行编译,所以需要编辑成 gcc-9 形式

cp build/linux.gcc.inc build/linux.gcc-9.inc

编辑 linux.gcc-9.inc 文件:
第15、16行原来是

CPLUS ?= g++
CONLY ?= gcc

修改为

CPLUS ?= g++-9
CONLY ?= gcc-9

然后在文件夹 oneTBB-2020_U3/ 中编译

cd oneTBB-2020_U3
make compiler=gcc-9 stdver=c++17 tbb_build_prefix=my_tbb_build

编译完成后,在 builld/ 文件夹下会看到编译生成的文件夹 my_tbb_build_release/.

三、安装

将 tbb 编译生成的库文件放到对应的 /usr/ 文件夹下:

sudo mkdir /usr/local/tbb-2020_U3sudo cp -r oneTBB-2020_U3/include /usr/local/tbb-2020_U3/include
# 建立新安装tbb版本的符号链接
sudo ln -s /usr/local/tbb-2020_U3/include/tbb /usr/local/include/tbbsudo cp -r oneTBB-2020_U3/build/my_tbb_build_release /usr/local/tbb-2020_U3/lib
# 建立新安装tbb版本的符号链接
sudo ln -s /usr/local/tbb-2020_U3/lib/libtbb.so.2 /usr/local/lib/libtbb.so
sudo ln -s /usr/local/tbb-2020_U3/lib/libtbbmalloc.so.2 /usr/local/lib/libtbbmalloc.so
sudo ln -s /usr/local/tbb-2020_U3/lib/libtbbmalloc_proxy.so.2 /usr/local/lib/libtbbmalloc_proxy.so

然后把 库文件的路径写入到 ~/.bashrc

echo 'export LD_LIBRARY_PATH=/usr/local/tbb-2020_U3/lib:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc

然后再次编译程序。

如果出现以下报错,说明现在还是索引到了旧版本的 tbb .

In file included from /usr/include/c++/9/pstl/parallel_backend.h:14,from /usr/include/c++/9/pstl/algorithm_impl.h:25,from /usr/include/c++/9/pstl/glue_execution_defs.h:52,from /usr/include/c++/9/execution:32,from /home/wong/workspace/***/src/***/***/src/laser_mapping.cc:3:
/usr/include/c++/9/pstl/parallel_backend_tbb.h:28:2: error: #error Intel(R) Threading Building Blocks 2018 is required; older versions are not supported.28 | #error Intel(R) Threading Building Blocks 2018 is required; older versions are not supported.|  ^~~~~
In file included from /usr/include/c++/9/pstl/parallel_backend.h:14,from /usr/include/c++/9/pstl/algorithm_impl.h:25,from /usr/include/c++/9/pstl/glue_execution_defs.h:52,from /usr/include/c++/9/execution:32,from /home/wong/workspace/***/src/***/***/src/pointcloud_preprocess.cc:4:
/usr/include/c++/9/pstl/parallel_backend_tbb.h:28:2: error: #error Intel(R) Threading Building Blocks 2018 is required; older versions are not supported.28 | #error Intel(R) Threading Building Blocks 2018 is required; older versions are not supported.

需要卸载掉原来的 tbb,或者把原来的 tbb 库文件备份换个名字(这里把 tbb 库文件备份换个名字):

cd /usr/lib/x86_64-linux-gnu
# 把原来的 tbb 库文件备份换个名字
sudo mv libtbb.so libtbb.so.bk
sudo mv libtbbmalloc_proxy.so libtbbmalloc_proxy.so.bk
sudo mv libtbbmalloc.so libtbbmalloc.so.bk# 建立新安装tbb版本的符号链接
sudo ln -s /usr/local/tbb-2020_U3/lib/libtbb.so.2 /usr/lib/x86_64-linux-gnu/libtbb.so
sudo ln -s /usr/local/tbb-2020_U3/lib/libtbbmalloc.so.2 /usr/lib/x86_64-linux-gnu/libtbbmalloc.so
sudo ln -s /usr/local/tbb-2020_U3/lib/libtbbmalloc_proxy.so.2 /usr/lib/x86_64-linux-gnu/libtbbmalloc_proxy.so

至此,安装tbb完成。

参考链接

[1] 天街踏尽公卿骨. linux tbb 安装_Ubuntu18.04 GCC9 安装 [EB/OL]. https://blog.csdn.net/weixin_32207065/article/details/112270765, 2021-01-01/2022-08-11.
[2] 知行合一2018. Ubuntu 16.04系统中使用GCC 9.1及Intel TBB库运行C++17 STL并行算法库 [EB/OL]. https://blog.csdn.net/davidhopper/article/details/98309966, 2022-02-15 /2022-08-11.

Ubuntu 安装 tbb 步骤详解相关推荐

  1. mysql data文件夹恢复_【专注】Zabbix源码安装教程—步骤详解(2)安装并配置mysql...

    四.安装并配置mysql(1) 解压mysql-5.7.26.tar.gz与boost_1_59_0.tar.gz #tar -xvf mysql-5.7.26.tar.gz #tar -xvf bo ...

  2. php多线程安装pthreads步骤详解

    摘要: 本文讲的是php多线程安装pthreads步骤详解, PHP扩展下载:https://github.com/krakjoe/pthreads PHP手册文档:http://php.net/ma ...

  3. php+mysql案例含源码_【专注】Zabbix源码安装教程—步骤详解(1)安装前准备

    一.实验环境准备 Rhel 7.6 x86_64(server) 192.168.163.72 Rhel 6.5 x86_64(agent) 192.168.163.61 均已配置操作安装光盘为YUM ...

  4. linux安装Openssl步骤详解_问题:OpenSSL: error:100AE081:elliptic curve routines:EC_GROUP_new_by_curve_name:un

    linux上安装Openssl步骤详解 问题: OpenSSL: error:100AE081:elliptic curve routines:EC_GROUP_new_by_curve_name:u ...

  5. u盘启动 v5 华为2288h_华为2288H V5 安装Windows2012R2步骤详解

    华为2288H V5 安装Windows2012R2步骤详解 这款服务器支持多种方式安装操作系统:一.通过IPMI管理口安装:二.通过F6引导安装:三.通过光盘等移动介质安装系统. 这里我就先介绍第一 ...

  6. linux上安装Openssl步骤详解

    linux上安装Openssl步骤详解     1,查看原有系统是否已安装Openssl openssl version -a 系统已经安装了openssl,我们先安装新的版本,然后将环境配置成最新的 ...

  7. 编译安装Nginx步骤详解

    编译安装Nginx步骤详解 1,去Nginx官方网站下载源码包并解压 curl -O 或wget 跟下载链接 tar -xf 解压 2,进入nginx解压后的目录执行./configure - ./c ...

  8. ubuntu 16.04 官网版安装 caffe 步骤详解[CPU][紧跟官网,永不踩坑]

    Reference: CPU: https://www.youtube.com/watch?v=DnIs4DRjNL4 GPU: Part1: https://www.youtube.com/watc ...

  9. Node.js在不同平台的安装方法步骤详解

    Mac平台下搭建node.js开发平台 安装方式 1 步骤: 下载mac版的.pkg文件(简单直接和Windows差不多) 安装方式 2 步骤: 安装xcode(命令:xcode-select --i ...

  10. centos mysql 安装教程_CentOS中安装MySQL步骤详解

    本文中Linux环境为CentOS 6.4 32位,且安装选择的是Basic Server版. 在有些Linux版本中会自带有MySQL数据库,所以在安装之前,需要检查当前Linux环境中是否已有My ...

最新文章

  1. 动态验证码制作(RandomCodeImage )
  2. (21)Spring Boot过滤器、监听器【从零开始学Spring Boot】
  3. AES地址栏传参加密
  4. Linux命令完全指南route,Linux命令--route
  5. Java设计模式透析之 —— 单例(Singleton)
  6. UVA10666 The Eurocup is Here!【数学模式】
  7. 引领移动协同需求Cnskype结合微信企业号推出企业办公、通讯整合方案
  8. 国二c语言编程题只看结果吗,全国计算机二级C语言上机考试运行和编译都可以,但是运行出的结果和题目要求的结果不一样...
  9. 28、ZigBee 开发教程之基础篇—红外对射计数器
  10. 传感器系列之4.10 酒精传感器
  11. 初中生c语言入门自学视频,初中生如何学好c语言
  12. 【牛客网华为机试】HJ69 矩阵乘法
  13. 利用ajax从jsp中返回的字符串时出现回车符号解决办法
  14. SAP-MM知识精解-自动科目记账(04-2)- 业务事物之“科目分组代码”的影响
  15. 湖人控卫鲍尔左脚踝三级扭伤 预计缺席4-6周
  16. 数据库基本概念、DBMS、DBS
  17. jfinal 官网不能访问了
  18. 数据库原理 概念结构设计的方法
  19. 在VMware上如何创建虚拟机以及安装Linux操作系统
  20. Object Oriented Programming(1)

热门文章

  1. nc命令应用场景及使用
  2. mysql存储特殊表情符号,解决mysql存储特殊文字(表情符号)utf8mb4
  3. (57)Linux驱动开发之三Linux字符设备驱动
  4. [Swift]LeetCode1088. 易混淆数 II | Confusing Number II
  5. 怎么看263邮箱的服务器信息,263邮箱真的不能用,刚刚上了一当,劝大家务必注意...
  6. 小岚rabbit_radish(兔仔-萝卜)
  7. MyDiskTest硬盘检测绿色版
  8. 还原扩容的缩水U盘真实容量方法,让数据免受损失
  9. 09.mtk背光流程
  10. matlab均值量化函数_Matlab量化函数quantiz解析