Ubuntu 安装 tbb 步骤详解

news/2025/2/11 17:03:10/

文章目录

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

写在前面

自己的测试环境是 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.


http://www.ppmy.cn/news/659235.html

相关文章

htb:Starting Point

目录 第0层第1层第1~3关第4关:Responder端口探测网站探测本地文件包含漏洞利用爆破NTLM的哈希连接靶机 第5关:Three第6~9关(VIP) 第2层第1关:Archetype端口探测SMB探测连接SQL服务基于xp_cmdshell反弹shellFlag提权 第…

USB Hub的MTT,STT区别基本了解

对USB Hub基本理解 从功能上看,就是把一个usb分成几个可以使用的usb扩展口。 需要考虑的是,1,几个扩展口通过一个usb到电脑如何正确传入信息。2,上传下载数据的控制,3,传输速度。HUB考虑这几个问题对应的几…

NR 5G 关于gNB-CU和gNB-DU

详细接入流程图&#xff08;包含gNB-CU<gNB-CU-CP、gNB-CU-UP>和gNB-DU&#xff09; CU&#xff1a;集中单元&#xff08;Centralized Unit&#xff09;&#xff0c;包括RRC和PDCP&#xff0c;可连接多个DU DU&#xff1a;分布单元&#xff08;Distributed Unit&#xff…

HTB-Cascade

HTB-Cascade 信息收集立足s.smith -> arksvc使用脚本获取CascAudit.exe加密的密码明文修改IL指令获取 arksvc -> administrator 信息收集 查看smbclient。 rpcclient空密码连接并收集信息。 收集到用户列表&#xff0c;此外没有有意思的信息。 CascGuest arksvc s.smi…

HTB-Tier1

HTB-Tier1 Appointment Task 1 What does the acronym SQL stand for? ********** ***** *******e Structured Query Language Hide Answer Task 2 What is one of the most common type of SQL vulnerabilities? *** ********n sql injection Hide Answer Task …

【Linux】【chatGLM-6B】如何从huggingface上下载chatGLM-6B模型于centos系统

文章目录 一、centos7安装git-lfs1. 下载安装包上传到服务器2. 上传服务器并解压3 安装 二、模型下载 一、centos7安装git-lfs 1. 下载安装包上传到服务器 从https://github.com/git-lfs/git-lfs/releases这个网址上选择以下框框中的内容进行下载 2. 上传服务器并解压 tar…

Linux开源IM GGTalk 8.0发布,支持在统信UOS、银河麒麟上运行!

GGTalk在2021年推出7.0后&#xff0c;经过一年多时间的开发&#xff0c;终于推出8.0版本&#xff0c;实现了Linux客户端。这几年&#xff0c;信创国产化的势头越来越猛&#xff0c;政府事企业单位都在逐步转向使用国产OS、国产CPU、国产数据库。在接单的时候&#xff0c;也有客…

玩转ChatGPT:中科院ChatGPT Academic项目部署与测评

一、ChatGPT Academic简介 最近&#xff0c;以ChatGPT为代表的超大规模语言模型火出了圈&#xff0c;各种二次开发项目也是层出不穷。 比如说今天我们玩弄的这个“ChatGPT Academic”&#xff0c;在GitHub上已经13.7K的点赞了。 项目地址&#xff1a;https://github.com/bina…