编译报错:undefined reference to `std::__cxx11::basic_string 或者@GLIBCXX_3.4.21

news2025/1/18 17:15:12

出现错误起因:

        编译环境,gcc从4.8.5版本升级到9.3.0版本。项目引用客户的SDK库(库是gcc7.2.0版本编译的)。用gcc7.2.0版本编译正常。

错误信息:

排查错误:

        1.网上搜索了undefined reference to `std::__cxx11::basic_string错误。提供了一个方式:

         在cmakelist 中添加 :

add_definitions(-D_GLIBCXX_USE_CXX11_ABI=0)

        依然报错。将宏改为1也依然报错

        2.想到编译环境上是手动升级,怀疑编译环境上两个gcc有混用。于是排查:

        编译脚本添加(VERBOSE)详细信息输出:

        发现编译使用的编译器:/usr/bin/c++

        将报错语句换成/usr/bin/g++编译,发现编译成功。

        查看/usr/bin/c++ --version  
        发现版本不对,于是判断出,之前升级gcc升级的不完全。

解决方法:

        两种解决方式:

        一,将gcc升级完全:

        修改gcc、g++、c++、cpp、cc 软链接到新安装版本路径,cc (一般自动软链接在gcc上)

 ln -snf  /usr/local/gcc-9.3.0/bin/gcc   /usr/bin/gcc
 ln -snf  /usr/local/gcc-9.3.0/bin/g++   /usr/bin/g++
 ln -snf  /usr/local/gcc-9.3.0/bin/c++   /usr/bin/c++
 ln -snf  /usr/local/gcc-9.3.0/bin/cpp   /usr/bin/cpp

        或者可以重新手动升级:https://blog.csdn.net/Bossking321/article/details/138187029?spm=1001.2014.3001.5502

        二,在cmakelist中,调用编译器之前添加如下语句

SET(CMAKE_C_COMPILER "<high_version_path>/gcc9.3.0/bin/gcc")
SET(CMAKE_CXX_COMPILER "<high_version_path>/gcc9.3.0/bin/g++")

        方法二,未进行尝试;方法一,已尝试,可以。

补充:

        出现 @GLIBCXX_3.4.21 错误,也是编译器安装问题

获取安装gcc目录下最高版本的libstdc++版本,移至/usr/lib64下

sudo cp /usr/local/gcc-9.3.0/lib64/libstdc++.so.6.0.21 /usr/lib64
cd /usr/lib64
sudo ln -s libstdc++.so.6.0.21 libstdc++.so.6
strings /usr/lib64/libstdc++.so.6 | grep GLIBC

问题解决!

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

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

相关文章

网络架构与IP技术:4K/IP演播室制作的关键支撑

随着科技的不断发展&#xff0c;广播电视行业也在不断迭代更新&#xff0c;其中4K/IP演播室技术的应用成了一个引人注目的焦点。4K超高清技术和IP网络技术的结合&#xff0c;不仅提升了节目制作的画质和效果&#xff0c;还为节目制作带来了更高的效率和灵活性。那么4K超高清技术…

基于windows通过kind部署轻量级便携式k8s集群

感谢老师的视频教程&#xff1a; 基于windows通过kind部署轻量级便携式k8s集群 wsl windows下的linux wsl --set-default-version 2 wsl --help wsl --list --online wsl --install -d Ubuntu wsl -l -v &#xff08;看看版本是不是2&#xff0c;否则docker那边识别不到&…

【时间复杂度和空间复杂度之间的故事】

【时间复杂度和空间复杂度之间的故事】 一.前言 二.时间复杂度定义时间复杂度的计算规则习题 三.空间复杂度定义计算方法习题空间复杂度 O(1)空间复杂度 O(n) 本文主要讲解关于时间复杂度与空间复杂度 &#x1f600;&#x1f603;&#x1f601;&#x1f601;&#x1f607;&…

鸿蒙ArkUI-X跨语言调用说明:平台差异化【Android、ios动态化】

动态化介绍 简介 ArkUI-X支持动态化&#xff0c;使用者可以根据自己需要动态发布跨平台内容&#xff0c;从而使跨平台部分和宿主应用进行解耦。动态化能力支持如下两个典型场景&#xff1a; 框架动态化&#xff1a;指ArkUI跨平台开发框架本身可以做到动态下发&#xff0c;即…

webpack优化构建体积示例-压缩图片:

不同的图片格式有不同的特点和用途&#xff0c;它们也需要不同的压缩算法和技术&#xff0c;也为了保证能在各个浏览器环境下能正常加载显示&#xff0c;所以需要用到多个插件 在使用imagemin-webpack-plugin来配置图片压缩时&#xff0c;你需要确保已经安装了该插件以及它可能…

GBDT调参--贝叶斯调参

随机抽特征和随机抽样本 n_estimators 是控制森林中树木的数量&#xff0c;即基评估器的数量。这个参数对随机森林模型的精确性影响是单调的&#xff0c;n_estimators越 大&#xff0c;模型的效果往往越好。但是相应的&#xff0c;任何模型都有决策边 n_estimators达到一定的程…

WPS二次开发系列:第三方应用快速接入WPS打印功能

作者持续关注 WPS二次开发专题系列&#xff0c;持续为大家带来更多有价值的WPS开发技术细节&#xff0c;如果能够帮助到您&#xff0c;请帮忙来个一键三连&#xff0c;更多问题请联系我&#xff08;QQ:250325397&#xff09; 目录 应用场景 Demo效果演示 SDK申请及初始化 SD…

Java面试八股之HashSet和TreeSet有什么区别

Java中HashSet和TreeSet有什么区别 1. 底层数据结构 HashSet: 基于哈希表&#xff08;实际上是 HashMap 的内部实现&#xff09;实现。每个元素通过其 hashCode() 方法计算出哈希码&#xff0c;并通过哈希码确定其在哈希表中的位置。这种结构使得 HashSet 在插入、删除和查找…

华为 2024 届实习校园招聘-硬件通⽤/单板开发——第六套

华为 2024 届实习校园招聘-硬件通⽤/单板开发——第六套 部分题目分享&#xff0c;完整版带答案(有答案和解析&#xff0c;答案非官方&#xff0c;未仔细校正&#xff0c;仅供参考&#xff09;&#xff08;共十套&#xff0c;每套四十题选择题&#xff09;获取&#xff08;WX:…

零基础入门篇④ 初识Python(注释、编码规范、关键字...)

Python从入门到精通系列专栏面向零基础以及需要进阶的读者倾心打造,9.9元订阅即可享受付费专栏权益,一个专栏带你吃透Python,专栏分为零基础入门篇、模块篇、网络爬虫篇、Web开发篇、办公自动化篇、数据分析篇…学习不断,持续更新,火热订阅中🔥专栏订阅地址 👉Python从…

Shiro核心深度解析文档

1. Shiro的介绍 它是一个简单易用的java安全框架,可以运行在非Web环境 1.主要提供的功能 身份认证 大多时称为登录,这是证明用户身份的行为 授权管理 访问控制的过程,即决定"谁"可以做"什么" 会话管理 管理特定于用户的会话,在非Web环境也是这样 密码…

echarts 图表tooltip扩展(适配移动端)

2024.5.16今天我学习了如何对echarts 图表tooltip进行自定义设置&#xff0c;效果如&#xff1a; 如果是日维度&#xff0c;需要展示对应的星期&#xff0c;以及用移动端去查看这个图表提示要显示在整个图表内&#xff0c;如果没有设置position会溢出图表&#xff0c;通用写法代…

数据结构与算法|算法总结|动态规划之编辑距离总结篇

啥也不说先上图&#xff01; 本节一共总结了六道题&#xff0c;个人认为作为二维dp的典型用法&#xff0c;所以归纳到了一起&#xff0c;方便对比、类比学习。 718.最长重复子序列 力扣题目链接 文章链接 两个整数数组A、B&#xff0c;返回两个数组中 公共的、长度最长的子数组…

跨域数据流动:数据提取过程中的治理与安全双轮驱动

跨域数据流动&#xff1a;数据提取过程中的治理与安全双轮驱动 随着信息技术的飞速发展&#xff0c;跨域数据流动已成为现代社会的常态。从医疗记录到金融交易&#xff0c;从社交媒体到企业运营&#xff0c;数据在各个领域之间频繁交换&#xff0c;为社会发展带来了极大的便利…

Cocktail for Mac 激活版:一站式系统优化与管理神器

Cocktail for Mac是一款专为Mac用户打造的系统优化与管理工具&#xff0c;凭借其强大的功能和简便的操作&#xff0c;赢得了广大用户的喜爱。这款软件集系统清理、修复和优化于一身&#xff0c;能够帮助用户轻松解决Mac系统中的各种问题&#xff0c;提高系统性能。 Cocktail fo…

MySQL单表查询案例演示

目录 一、创建数据库lianxi 二、选择数据库为lianxi 三、新建一个数据表grade&#xff0c;在grade表中插入数据 四、开始进行查询操作&#xff08;验证表中数据&#xff09; 1、查询1945班的成绩信息 2、查询1945班&#xff0c;语文成绩大于60小于90的成绩信息 3、查询学…

电商数据分析的介绍及应用||电商数据API接口

在这到处弥漫着电商气息的社会里&#xff0c;人们依靠电商让生活变得简单而便捷。那么作为电商数据分析师&#xff0c;我们需要在海量电商数据中揭示出隐含的、先前未知的并有潜在价值的信息和规律&#xff0c;这也要求我们具备数据洞察和汇总能力&#xff0c;运用数据挖掘模型…

Leetcode-有效的括号(带图)

20. 有效的括号 - 力扣&#xff08;LeetCode&#xff09;https://leetcode.cn/problems/valid-parentheses/ 题目 给定一个只包括 (&#xff0c;)&#xff0c;{&#xff0c;}&#xff0c;[&#xff0c;] 的字符串 s &#xff0c;判断字符串是否有效。 有效字符串需满足&…

git 拉取指定目录

指令方式 打开 git 自带的Git Bash 工具 以拉取github中 fastjson 的 /src/test/java/oracle/sql/ 目录为例 1.创建文件夹和git 初始化 cd D:/Program\ Files mkdir fastjson cd fastjson git init 2.设置允许克隆子目录 git config core.sparsecheckout true 3.添加远程…

【physx/wasm】在physx中添加自定义接口并重新编译wasm

目录 说在前面环境搭建编译自定义接口 说在前面 操作系统&#xff1a;windows11wsl2physx版本&#xff1a;5.3.1参考&#xff1a;physx-js-webidl (physx版本为该作者fork出的某个版本) 环境搭建 这里使用的是wsl2docker进行编译的&#xff0c;搭建步骤参考&#xff1a;WSL2 上…