解决Linux下编译Intel oneTBB动态库出错的问题
在CMakeLists.txt中,原来有一段这样查找和链接的配置代码
find_library(tbblibaray ${tbb_path})
target_link_libraries(backalarm ${tbblibaray})
编译后提示错误:
/myapp/library/tbb/libtbb.so:对‘__cxa_throw_bad_array_new_length@CXXABI_1.3.8’未定义的引用
/myapp/library/tbb/libtbb.so:对‘std::out_of_range::out_of_range(char const*)@GLIBCXX_3.4.21’未定义的引用
/myapp/library/tbb/libtbb.so:对‘std::runtime_error::runtime_error(char const*)@GLIBCXX_3.4.21’未定义的引用
/myapp/library/tbb/libtbb.so:对‘std::length_error::length_error(char const*)@GLIBCXX_3.4.21’未定义的引用
/myapp/library/tbb/libtbb.so:对‘std::invalid_argument::invalid_argument(char const*)@GLIBCXX_3.4.21’未定义的引用
/myapp/library/tbb/libtbb.so:对‘std::runtime_error::runtime_error(char const*)@GLIBCXX_3.4.21’未定义的引用
查找了很多文章,有的说GCC版本太低之类的,没有CXXABI_1.3.8和GLIBCXX_3.4.21之类的。但经查询是有相应版本的:
[root@node58 /]# strings /usr/lib64/libstdc++.so.6 | grep GLIBC
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_3.4.22
GLIBCXX_3.4.23
GLIBCXX_3.4.24
GLIBCXX_3.4.25
GLIBCXX_3.4.26
GLIBC_2.2.5
GLIBC_2.3
GLIBC_2.6
GLIBC_2.4
GLIBC_2.3.2
[root@node58 /]# strings /usr/lib64/libstdc++.so.6|grep CXXABI
CXXABI_1.3
CXXABI_1.3.1
CXXABI_1.3.2
CXXABI_1.3.3
CXXABI_1.3.4
CXXABI_1.3.5
CXXABI_1.3.6
CXXABI_1.3.7
CXXABI_1.3.8
CXXABI_1.3.9
CXXABI_1.3.10
CXXABI_1.3.11
CXXABI_1.3.12
CXXABI_TM_1
CXXABI_FLOAT128
最后在查询Intel官网oneTBB的github发现,最低系统要求里居然没有CentOS,并且编译器gcc版本要求8-12版本
https://www.intel.com/content/www/us/en/developer/articles/system-requirements/intel-oneapi-threading-building-blocks-system-requirements.html
Software - Supported Operating Systems
Systems with Microsoft* Windows* operating systems
Microsoft* Windows* 10
Microsoft* Windows* 11
Microsoft* Windows* Server 2019
Microsoft* Windows* Server 2022
Systems with Linux* operating systems
Oracle Linux* 8
Amazon* Linux 2, 2022
Rocky Linux 8, 9
Debian* 9, 10, 11
Fedora* 36, 37, 38
Red Hat* Enterprise Linux* 8, 9
SuSE* Linux* Enterprise Server 15
Ubuntu* 20.04, 22.04
Systems with macOS* operating systems
macOS* 12.x, 13.x
Intel® oneAPI DPC++/C++ Compiler
Intel® C++ Compiler Classic 2021.1 - 2021.9
Microsoft* Visual C++ 14.2 (Microsoft* Visual Studio* 2019, Windows* OS only)
Microsoft* Visual C++ 14.3 (Microsoft* Visual Studio* 2022, Windows* OS only)
For each supported Linux* operating system, the standard gcc version provided with that operating system is supported
GNU Compilers (gcc) 8.x – 12.x
GNU C Library (glibc) version 2.28 – 2.36
Clang* 6.0.0-13.0.0
至此问题基本明朗,难道真的要升级gcc版本?但是系统适应性没那么高了。后来发现oneTBB的前身为Threading Building Blocks ,最后的版本是Threading Building Blocks 2020 Update 3,于是下载来看,它最低编译器只要gcc4.8符合要求,立即下载后替换原来的include头文件和lib动态链接文件,最后编译成功!

下载地址:
https://github.com/oneapi-src/oneTBB/releases?page=2
参考:
https://blog.csdn.net/m0_47096428/article/details/124251823
相关文章:
解决Linux下编译Intel oneTBB动态库出错的问题
在CMakeLists.txt中,原来有一段这样查找和链接的配置代码 find_library(tbblibaray ${tbb_path}) target_link_libraries(backalarm ${tbblibaray})编译后提示错误: /myapp/library/tbb/libtbb.so:对‘__cxa_throw_bad_array_new_lengthCX…...
分布式日志和链路追踪
分布式日志 实现思路 分布式日志框架服务的实现思路基本是一致的,如下: 日志收集器:微服务中引入日志客户端,将记录的日志发送到日志服务端的收集器,然后以某种方式存储数据存储:一般使用ElasticSearch分…...
el-select multiple表单校验问题
el-select multiple表单校验问题 <el-form refform :modelform><el-form-item propvulTypes label漏洞类型><el-select v-modelform.vulTypes changevulTypeChange><el-option v-foritem in vulList :keyitem :labelitem :valueitem></el-option&g…...
论文阅读——BART
Arxiv: https://arxiv.org/abs/1910.13461 一个去噪自编码器的预训练序列到序列的模型。是一个结合了双向和自回归transformers的模型。 预训练分为两个阶段:任意噪声函数破坏文本和序列模型重建原始文本 一、模型 input:被破坏的文本-->bidirecti…...
InstructionGPT
之前是写在[Instruction-tuning(指令微调)]里的,抽出来单独讲一下。 基本原理 在做下游的任务时,我们发现GPT-3有很强大的能力,但是只要人类说的话不属于GPT-3的范式,他几乎无法理解。例如,我们…...
电脑视频怎么转音频mp3
如果你在电脑上观看视频时喜欢上某个片段的背景音乐,且想将喜欢的背景音乐制作为手机铃声。我是建议你将此视频转换为 MP3 格式,因为 MP3 几乎与所有设备相兼容,让你可以在不同设备上不受限制地去聆听它。那该如何转换呢?无需担心…...
java 读取pdf文件内容
一、引入maven <dependency><groupId>org.apache.pdfbox</groupId><artifactId>pdfbox</artifactId><version>2.0.25</version> </dependency>二、代码工具类 package com.jiayou.peis.utils;//import com.itextpdf.text.pd…...
【linux】安装rpmrebuild
rpmrebuild是一种从已经安装的包中构建RPM文件的工具。它可以用于轻松构建修改后的包,并适用于任何使用RPM的Linux发行版。 访问地址 rpm rebuild download | SourceForge.net 选择版本 版本地址:版本地址 下载安装包 安装 rpm -ivh rpmrebuild-2.15…...
设计模式——访问者模式(Visitor Pattern)+ Spring相关源码
文章目录 一、访问者模式(Visitor Pattern)二、文字描述三、例子例子一:菜鸟教程对象定义访问者定义使用总结 例子二:Spring的BeanDefinitionVisitor 一、访问者模式(Visitor Pattern) 行为型模式。 目的&…...
SQL Delete 语句(删除表中的记录)
SQL DELETE 语句 DELETE语句用于删除表中现有记录。 SQL DELETE 语法 DELETE FROM table_name WHERE condition; 请注意删除表格中的记录时要小心!注意SQL DELETE 语句中的 WHERE 子句! WHERE子句指定需要删除哪些记录。如果省略了WHERE子句ÿ…...
在 Android 上测试 Kotlin 数据流
文章目录 一 创建虚构数据提供方二 在测试中断言数据流发出测试期间持续收集 三 测试 StateFlow使用 stateIn 创建的 StateFlow 转自: https://developer.android.google.cn/kotlin/flow/test?hlzh-cn#producer 与数据流进行通信的单元或模块的测试方式取决于受测对…...
day43
今日内容 python操作MySQL(重要) SQL注入问题(安全相关的xss,csrf) 视图(了解) 触发器(了解) 事务(重要) 存储过程(了解) 内置函数(了解,很多) 流程控制(了解) 索引(重点) python操作MySQL MySQL本身就是一款c/s架构,有服务端、有客户端&…...
终端管理制度
1、总则 1.1、目的 为规范XXXXX单位员工在使用计算机终端过程中的行为,提高计算机终端的安全性,确保员工安全使用计算机终端,特制定本制度。 1.2、范围 本规定适用于在XXXXX单位使用计算机终端的所有员工,包括内部终端和外部终…...
视频相关学习笔记
YUV 和rgb一样是一种表示色彩的格式,Y表示亮度,UV表示色度(U是蓝色投影,V是红色投影),只有Y就是黑白的,所以这个格式的视频图片可以兼容黑白电视,所以彩色电视使用的都是YUV 存储方…...
神经网络中epoch、batch、batchsize区别
目录 1 epoch 2 batch 3 batchsize 4 区别 1 epoch 当数据集中的全部数据样本通过神经网络一次并且返回一次的过程即完成一次训练称为一个epoch。 当我们分批学习时,每次使用过全部训练数据完成一次Forword运算以及一次BP运算,称为完成了一次epoch。 epoch时期 = 所有训练…...
如何将Mysql数据库的表导出并导入到另外的架构
如何将Mysql数据库的表导出并导入到另外的架构 准备一、解决方法1.右键->导出->用mysqldump导出2.注意路径一般为:C:/Program Files/MySQL/MySQL Server 8.0/bin/mysqldump.exe和导出的sql文件位置3.右键->SQL脚本->运行SQL脚本4.找到SQL脚本并点击确定…...
【tio-websocket】9、服务配置与维护—TioConfig
场景 我们在写 TCP Server 时,都会先选好一个端口以监听客户端连接,再创建N组线程池来执行相关的任务,譬如发送消息、解码数据包、处理数据包等任务,还要维护客户端连接的各种数据,为了和业务互动,还要把这些客户端连接和各种业务数据绑定起来,譬如把某个客户端绑定到一…...
数据结构—线性表(下)
文章目录 6.线性表(下)(4).栈与队列的定义和ADT#1.ADT#2.栈的基本实现#3.队列的形式#4.队列的几种实现 (5).栈与队列的应用#1.栈的应用i.后缀表达式求值ii.中缀表达式转后缀表达式 #2.队列的应用 (6).线性表的其他存储方式#1.索引存储#2.哈希存储i.什么是哈希存储ii.碰撞了怎么…...
apisix之插件开发,包含java和lua两种方式
https://download.csdn.net/download/tiantangpw/88475630 有ppt和springboot程序包,可以运行...
【面试经典150 | 链表】合并两个有序链表
文章目录 Tag题目来源题目解读解题思路方法一:递归方法二:迭代 写在最后 Tag 【递归】【迭代】【链表】 题目来源 21. 合并两个有序链表 题目解读 合并两个有序链表。 解题思路 一种朴素的想法是将两个链表中的值存入到数组中,然后对数组…...
Linux系统学习:38张思维导图构建核心知识体系
1. Linux学习思维导图概述作为一名从嵌入式开发转战云计算的老兵,我深知系统化学习Linux的重要性。最近整理硬盘时翻出一套珍藏多年的学习资料——38张涵盖Linux核心知识体系的思维导图,这些图纸曾帮助我顺利通过RHCE认证,也指导过团队新人快…...
OpenClaw家装设计:Qwen2.5-VL-7B根据户型图生成3D效果示意图
OpenClaw家装设计:Qwen2.5-VL-7B根据户型图生成3D效果示意图 1. 为什么选择OpenClaw做家装设计自动化 去年装修新房时,我花了大量时间在设计师和施工队之间来回沟通。每次修改设计方案都需要等待设计师重新出图,周期长、成本高。直到发现Op…...
Java应用等保三级合规改造:3天完成代码层、配置层、运维层全栈优化(附Checklist)
第一章:Java应用等保三级合规改造全景图等保三级是国家网络安全等级保护制度中面向重要信息系统的核心要求,对Java应用而言,合规改造不是单一技术点的修补,而是一套覆盖开发、运行、运维全生命周期的安全治理工程。其核心目标在于…...
老马失前蹄,竟然在数据库外键上翻车了,重温外键级联
一、什么是setuptools? setuptools 是一个用于创建、分发和安装 Python 包的核心库。 它可以帮助你: 定义 Python 包的元数据(如名称、版本、作者等)。 声明包的依赖项,确保你的包能够正确运行。 构建源代码分发包&…...
UCI心脏病数据集实战:用XGBoost构建预测模型的全流程指南(附特征重要性分析)
UCI心脏病数据集实战:用XGBoost构建预测模型的全流程指南(附特征重要性分析) 医疗数据科学正在重塑现代医学诊断方式。当我在克利夫兰诊所实习期间,亲眼见证了机器学习模型如何辅助医生识别高风险心脏病患者。本文将带您完整复现这…...
湖南石材结晶公司
在长沙,无论是高端商场、星级酒店,还是政务大厅、三甲医院,光洁如镜、平整如砥的石材地面,都是其专业形象与高端质感的直接体现。然而,石材作为“面子工程”,长期承受高频人流、设备碾压,极易出…...
4步攻克Fiji在macOS系统的启动难题:从诊断到长效维护的全方位解决方案
4步攻克Fiji在macOS系统的启动难题:从诊断到长效维护的全方位解决方案 【免费下载链接】fiji A "batteries-included" distribution of ImageJ :battery: 项目地址: https://gitcode.com/gh_mirrors/fi/fiji 问题定位:精准识别Fiji启动…...
intv_ai_mk11镜像部署教程:3条命令完成服务启动、状态检查、日志监控
intv_ai_mk11镜像部署教程:3条命令完成服务启动、状态检查、日志监控 1. 快速了解intv_ai_mk11 intv_ai_mk11是一款基于7B参数Llama架构的AI对话机器人,它能帮助你完成各种任务: 回答各类问题(技术、生活、知识等)辅…...
大厂高薪抢手!文科生如何抓住AI时代机遇,实现职业逆袭?
大厂纷纷高薪招聘文科生,引发社会关注。文科生凭借沟通、叙事、逻辑等优势,在大模型理解人类价值观、企业品牌宣传等方面发挥作用。高校也调整专业设置,培养跨学科人才。文章建议文科生根据自身专业,向文案策划、品牌宣传、法务、…...
AI开发AI:借助快马多模型能力,迭代式构建你的智能健康管理Agent
最近在尝试开发一个健康管理AI助手,发现用传统方式写代码调试特别耗时。后来尝试了InsCode(快马)平台,发现用AI对话的方式迭代开发简直打开了新世界。记录下这个"用AI开发AI"的完整过程: 基础框架搭建 最开始只需要一个能交互的对话…...
