gcc/c++ 版本不一致问题导致的

news2024/11/26 9:00:02

1.问题

rk3566板子的系统是ubuntu20.04 focal,   /etc/apt/source.list更换为阿里源

x86-67的pc主机系统的是ubuntu20.04  jammy     /etc/apt/source.list  更换为清华源

按照rknpu2的开发教程Rockchip_Quick_Start_RKNN_SDK_V1.5.2_CN.pdf:

交叉编译通过后(交叉编译的问题在这个文档中有记录:CSDN),把相关产生的文件通过adb push到远处的设备端,

执行命令:

./rknn_yolov5_demo ./model/RK3566_RK3568/yolov5s-640-640.rknn ./model/bus.jpg

出现错误:

./rknn_yolov5_demo: /lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by ./rknn_yolov5_demo)
./rknn_yolov5_demo: /lib/aarch64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by ./rknn_yolov5_demo)

2.分析思路

查看了很多网络信息,发现这个主要有两种方式解决,一种是升级GLIBC, 另一种升级gcc 和g++;

下面是设备端的查看的GLIBC的信息的指令,发现最高仅到2.30,没有GLIBC_2.34的版本, 考虑这种思路,参考/lib/aarch64-linux-gnu/libm.so.6: version `GLIBC_2.29‘ not found_version `glibc_2.29' not found_诺水城子的博客-CSDN博客

我决定用另外的方法。

在rk3566设备端(ubuntu20.04 focal)输入:strings /lib/aarch64-linux-gnu/libc.so.6 | grep GLIBC_

在x86-64的pc端(ubuntu20.04 jammy)输入: strings /lib/x86_64-linux-gnu/libc.so.6 |grep GLIBC_

分别显示如下,可看出rk3566端的GLIBC_版本最高到2.30

有博主认为这是因为编译环境下的gcc及g++版本和目标板的版本不同造成的,(参考:) 因为pc端的gcc及g++都是11.4.0版本的,但是设备端的gcc和g++是9.4.0版本的。

因此我打算在目标板按照高版本的gcc及g++,并于编译环境下的gcc和g++保持一致。

我发现g++可以通过  sudo apt-get install g++-11来安装完成,但是用这种方法安装gcc却找不到源。

3.解决方式

于是我参考这篇文章Ubuntu升级GCC版本_quxuexi的博客-CSDN博客,来安装gcc-11.4.0

1.添加相应的源

sudo add-apt-repository ppa:ubuntu-toolchain-r/test

2.更新软件源

sudo apt-get update

3.安装最新版gcc

sudo apt-get install gcc-11.4.0

4. 配置不同版本的g++,gcc

现在设备端有两个版本的gcc及g++,所以现在开始配置gcc及g++的版本选项,参考https://www.cnblogs.com/livelab/p/13049117.html

以下命令为每个版本配置替代版本,并将优先级与之关联。默认版本是优先级最高的版本,在本例中为gcc-11

分别配置gcc-11/g++-11 及gcc-9/g++-9(这种联合配置gcc和g++的方法会出错,请使用后面分开配置的方式)

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 100

--slave /usr/bin/g++ g++ /usr/bin/g++-11

--slave /usr/bin/gcov gcov /usr/bin/gcov-11

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 80

--slave /usr/bin/g++ g++ /usr/bin/g++-9

--slave /usr/bin/gcov gcov /usr/bin/gcov-9

以后,如果要更改默认版本,请使用以下update-alternatives命令:

sudo update-alternatives --config gcc

因为不小心多设置的了一次,所以gcc11有两个,这里我选择gcc-11作为我的默认版本,然后输入gcc--version命令,发现也已经是配置选项的gcc了。

如果想删除配置的gcc,可以用该命令(参考ubuntu中的update-alternatives命令_Lamar Davis的博客-CSDN博客):

sudo update-alternatives --remove gcc /usr/bin/gcc-11

我发现用上述统一配置gcc和g++的方式出错,就是master的gcc配置成功,但是g++配置无效,所以我尝试打算分开配置的方式(参考:update-alternatives: error: alternative g++ can't be slave of gcc: it is a master alternative_Longlongaaago的博客-CSDN博客),先把之前配置成功的gcc用上述方法删除。

sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-11 100

sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-9 80

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 100

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 80


通过升级设备端gcc和g++的版本至11.4.0后,再次执行模型的推理程序发现错误提示减少了一个.....version `GLIBCXX_3.4.29'......,另一个提示如下已经存在。

./rknn_yolov5_demo: /lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by ./rknn_yolov5_demo)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1008965.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C语言--strcat函数

C语言–strcat函数 文章目录 C语言--strcat函数一、strcat函数是什么?二、使用示例二、模拟实现 一、strcat函数是什么? 作用是把源数据追加到目标空间 char * strcat ( char * destination, const char * source );源字符串必须以 ‘\0’ 结束。目标空…

SqlServer在尝试加载程序集 ID 65917 时 Microsoft .NET Framework 出错。服务器可能资源不足,或者不信任该程序集

问题:在尝试加载程序集 ID 65917 时 Microsoft .NET Framework 出错。服务器可能资源不足,或者不信任该程序集,因为它的 PERMISSION_SET 设置为 EXTERNAL_ACCESS 或 UNSAFE。 检查数据库属性:检查服务器是否信任该程序集 解决方法…

PMP考试是什么?适合哪些人学?

PMP,Project Management Professional的缩写,中文名为“项目管理专业人士资格认证”,是由美国项目管理协会(PMI)发起的,严格评估项目管理人员知识技能是否具有高品质的资格认证考试。 PMP是管理专门用于项…

【面试必刷TOP101】合并k个已排序的链表 判断链表中是否有环

目录 题目:合并k个已排序的链表_牛客题霸_牛客网 (nowcoder.com) 题目的接口: 解题思路: 代码: 过啦!!! 题目:判断链表中是否有环_牛客题霸_牛客网 (nowcoder.com) 题目的接口…

【JAVA】idea初步使用+JDK详细配置

1、官方下载idea 官网:Download IntelliJ IDEA – The Leading Java and Kotlin IDE (1)、下载教程 我下载没截屏,详细教程请看 原文:手把手教你JDKIDEA的安装和环境配置_idea配置jdk_快到锅里来呀的博客-CSDN博客 2、启动项目时候需要配置J…

OpenMMLab MMYOLO目标检测算法原理(二)

算法原理及YOLOV5实现 YOLOv5是一种面向实时工业应用的开源目标检测算法,受到了广泛的关注。YOLOv5之所以能火爆,并不仅仅是因为其优异的性能。它更多的是关于其库的整体实用性和稳健性。简而言之,YOLOv5的主要特点是: &#xff…

vue前后端分离单点登录,结合长token和短token进行登录

单点登录背景 在公司发展初期,公司拥有的系统不多,通常一个两个,每个系统都有自己的登录模块,运营人员每天用自己的账号登陆,很方便,但是,随着企业的发展,用到的系统随之增加&#x…

纯干货|AI辅助写论文的正确打开方式!

论文写作中可能遇到问题 1. 选题问题:是否无法确定研究方向和选择合适的题目? 2. 文献综述问题:是否困惑如何进行文献调研和综述? 3. 方法论问题:是否不知道该选择何种研究方法? 4. 数据处理问题&#…

复杂场景:民族工业如何做大,主数据管理助力这家标杆工业企业领跑全球

项目背景 大族激光成立于1999年,总部位于中国深圳。是一家从事工业激光加工设备与自动化等配套设备及其关键器件的研发、生产、销售的制造业企业,公司的产品广泛应用于工业制造、通信、医疗、电子、消费电子、光通讯等领域。经过多年的发展,大…

一文看懂Oracle 19c OCM认证考试(需要Oracle OCP证书)

Oracle OCM的认证全称是Oracle Certified Master,是比OCP更高一级的认证,姚远老师的很多OCP学员都对OCM考试有兴趣,这里跟大家做个介绍。 OCM考试全部是上机的实操考试,没有笔试,要到Oracle原厂参加两天的考试。参加1…

【ABAP】如何理解SAP中的CLIENT (客户端)

💂作者简介: THUNDER王,阿里云社区专家博主,华为云云享专家,腾讯云社区认证作者,CSDN SAP应用技术领域优质创作者。在学习工作中,我通常使用偏后端的开发语言ABAP,SQL进行任务的完成…

蓝牙资讯|苹果新款AirPods Pro支持Vision Pro无损音频和IP54防水防尘

苹果公司宣称,USB-C 能够带来更多灵活性,现在用户可以使用手机的 USB-C 接口,为 AirPods Pro 耳机盒充电。 虽然苹果没有详细介绍这款耳机,但在今天的新闻稿中依然透露了一些不一样的地方,例如新款 AirPods Pro 2 升…

GaussDB技术解读系列:运维自动驾驶探索

近日,在第14届中国数据库技术大会(DTCC2023)的GaussDB“五高两易”核心技术,给世界一个更优选择专场,华为云数据库运维研发总监李东详细解读了GaussDB运维系统自动驾驶探索和实践。 随着企业数字化转型进入深水区&…

股票数据分析应用之可视化图表组件

股市是市场经济的必然产物,在一个国家的金融领域之中有着举足轻重的地位。在过去,人们对于市场走势的把握主要依赖于经验和直觉,往往容易受到主观因素的影响,导致决策上出现偏差。如今,通过数据可视化呈现,…

SAP MM会计凭证凭证状态为U

往成本中心发料后,SAP产生会计凭证状态为U: 会计凭证存在ACDOC 和 BKPF但是不存在BSEG 原因:物料主数据没有计划价格。

王道数据结构C语言顺序表基本操作实现

#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdbool.h> #define MaxSize 50 typedef struct {//顺序表(静态实现)int data[MaxSize];//顺序表元素int length;//顺序表当前长度 }SqList;//类型定义#define InitSize 100; typedef struct {//动态实…

智能二创文案软件-生成文案改写文案的软件

咱们都知道&#xff0c;写作是一项既耗时又考验创造力的任务。有时候&#xff0c;我们可能会陷入创意枯竭的困境&#xff0c;不知道该如何表达自己的想法。这时候&#xff0c;智能二创文案软件就出现在我们的视野中&#xff0c;它们声称可以帮助我们生成文案&#xff0c;省去了…

深度学习-全连接神经网络-详解梯度下降从BGD到ADAM - [北邮鲁鹏]

文章目录 参考文章及视频导言梯度下降的原理、过程一、什么是梯度下降&#xff1f;二、梯度下降的运行过程 批量梯度下降法(BGD)随机梯度下降法(SGD)小批量梯度下降法(MBGD)梯度算法的改进梯度下降算法存在的问题动量法(Momentum)目标改进思想为什么有效动量法还有什么效果&…

activemq学习笔记

传统的request/response 在客户端提交请求后必须等待服务端处理完毕给于反馈&#xff0c;这期间客户端完全处于空闲等待状态&#xff0c;甚至有可能超时&#xff1b; 基于消息中间件的request/response 客户端提交请求&#xff0c;不必等待服务器处理&#xff0c;客户端可以继…

《网页设计与制作-初级》

《网页设计与制作》是web前端开发技术中静态网页中的内容&#xff0c;主要包括html、css、js中的静态内容部分&#xff0c;是专业基础课程。 随着5G时代的到来&#xff0c;人工智能与物联网结合行业的飞速发展&#xff0c;更多的互联网的崛起。这肯定就比如伴随着对移动互联网…