ImportError: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20‘ not found

当遇到GLIBCXX_3.4.20版本未找到的问题时,通常是由于GCC升级后标准库未更新导致的。解决方法包括查找并链接高版本的libstdc++.so.6。首先,使用find命令找到新版本的库文件,然后将其软链接到/usr/lib64目录下,替换旧版本。最后,确认libstdc++.so.6中不再存在GLIBCXX_3.4.20的错误。

ImportError: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20’ not found

1 碰到问题/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.20’ not found
原因:编译GCC源码升级GCC版本后出现的该问题, 这是由于GCC升级后标准库还是旧的导致的。
1、find / -name “libstdc++.so.6*”
2、找到高版本
3、在这里插入图片描述
4、cd到 /opt/miniconda3/lib
5、cp libstdc++.so.6.0.26 /usr/lib64/
6、cd /usr/lib64
7、ls -l | grep libstdc++
8、在这里插入图片描述

9、rm -f libstdc++.so.6
10、ln -s libstdc++.so.6.0.26 libstdc++.so.6
11、最后查看strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX 有没有报错的libstdc++.so.20

### 解决方案概述 当Node.js运行时出现`node: /lib64/libstdc++.so.6: version 'GLIBCXX_3.4.21' not found`的错误提示时,表明当前系统中的`libstdc++.so.6`库版本不满足Node.js的需求。以下是具体解决方法: #### 1. 检查当前系统的`libstdc++.so.6`版本 可以通过以下命令检查系统中`libstdc++.so.6`的版本信息: ```bash strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX ``` 该命令会列出所有可用的`GLIBCXX`版本[^1]。如果输出中没有包含`GLIBCXX_3.4.21`,则需要升级或替换`libstdc++.so.6`。 #### 2. 下载并安装更高版本的`libstdc++` 从GCC官方网站或其他可信源下载包含`GLIBCXX_3.4.21`的`libstdc++`库文件。例如,下载`libstdc++-6.0.28`版本的库文件,并将其解压到指定目录。以下是具体步骤: - 下载对应版本的`libstdc++`库文件(如`libstdc++.so.6.0.28`)。 - 将其放置在系统库路径下,例如`/usr/lib64/`。 #### 3. 创建软链接 为了确保Node.js能够正确加载新版本的`libstdc++.so.6`,需要创建一个指向新版本库文件的软链接: ```bash ln -sf /usr/lib64/libstdc++.so.6.0.28 /usr/lib64/libstdc++.so.6 ``` 此操作将覆盖原有的软链接,指向新的`libstdc++.so.6.0.28`文件[^2]。 #### 4. 验证解决方案 完成上述步骤后,重新运行Node.js应用程序以验证问题是否解决。如果问题仍然存在,可以尝试设置环境变量`LD_LIBRARY_PATH`,以优先加载新版本的库文件: ```bash export LD_LIBRARY_PATH=/usr/lib64:$LD_LIBRARY_PATH ``` ### 示例代码 以下是一个简单的Node.js测试脚本,用于验证问题是否解决: ```javascript console.log("Testing Node.js with updated libstdc++..."); try { const result = require('child_process').execSync('strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX_3.4.21'); console.log(result.toString()); } catch (error) { console.error("Error:", error.message); } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值