ubuntu /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.15' not found

本文详细介绍了如何解决Chrome安装时遇到的错误,原因是当前系统缺少GLIBCXX_3.4.15版本的库。通过下载并安装新版本的库,最终成功解决了问题。
I got this problem when I was installing chrome.

出现该错误的原因是当前的GCC版本中,没有GLIBCXX_3.4.15,需要安装更高版本。
我们可以输入:strings /usr/lib/libstdc++.so.6 | grep GLIBCXX,查看当前的GCC版本,结果如下:
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 GLIBC_2.0 GLIBC_2.3 GLIBC_2.4 GLIBC_2.1 GLIBC_2.1.3 GLIBC_2.3.2 GLIBC_2.2 GLIBCXX_FORCE_NEW GLIBCXX_DEBUG_MESSAGE_LENGTH
可见没有GLIBCXX_3.4.15.
下载新版本,地址:http://ftp.de.debian.org/debian/pool/main/g/gcc-4.7/libstdc++6_4.7.2-5_i386.deb
假设下载的文件放在Download/。
解压:ar -x libstdc++6_4.7.2-5_i386.deb && tar xvf data.tar.gz
解压后出现Download/usr目录;
1)cd Download/usr/lib/i380-linux-gun
2) su root
3) cp libstdc++.so.6.0.17 /usr/lib
4) cd /usr/lib
5) rm libstdc++.so.6
6) ln libstdc++.so.6.0.17 libstdc++.so.6重新建立软连接
这时,我们再输入:strings /usr/lib/libstdc++.so.6 | grep GLIBCXX,结果为:
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_DEBUG_MESSAGE_LENGTH
看,GLIBCXX_3.4.15已经有了!

Reference: http://www.cnblogs.com/yingsi/p/3290958.html

<think>首先,用户的问题是关于解决Node.js运行时错误:"node: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21&#39; not found"。这通常发生在升级gcc后,但系统没有使用新版本的动态库。 从系统指令中,我需要: - 所有行内数学表达式用$...$格式,例如变量等。 - 独立公式用$$...$$格式并单独成段。 - 确保LaTeX语法正确。 - 使用中文回答。 - 生成相关问题。 - 在回答中引用的段落末尾添加引用标识,如[^1]。 用户可见层要求: - 回答结构清晰,帮助用户逐步解决问题。 - 保证回答真实可靠。 参考站内引用: - [^1] 描述了用户升级gcc后运行Node.js时出现错误。 - [^2] 类似错误。 - [^3] 解释问题原因:新gcc的动态库没有替换旧版本。 - [^4] 类似问题,需要更新动态库。 问题原因:升级gcc后,新版本的动态库(如libstdc++.so.6)没有被系统正确链接或使用。旧版本的库缺少所需的GLIBCXX符号(如GLIBCXX_3.4.21)。 解决方案步骤: 1. **确认问题**:检查当前libstdc++.so.6支持版本。 2. **找到新库位置**:新gcc安装的库通常在/usr/local/lib64或类似路径。 3. **替换或更新链接**:将新库复制到系统库路径或更新符号链接。 4. **验证**:运行Node.js检查错误是否解决。 详细步骤: - 使用命令检查当前库版本:`strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX` - 找到新库:`find / -name "libstdc++.so*" 2>/dev/null` - 替换库:拷贝新库到/usr/lib64/并更新链接。 - 或者使用`ldconfig`更新缓存。 确保安全:操作需要root权限,谨慎修改系统库。 结构回答: 1. **解释问题原因**。 2. **逐步解决方案**。 3. **验证步骤**。 4. **预防措施或注意事项**。 生成相关问题: - 基于此错误,相关问题可能包括:如何升级gcc?如何管理库版本?Node.js依赖问题等。 相关问题例子: 1. 如何安全升级gcc以避免此类问题? 2. 如何检查系统库的版本3. Node.js的其他常见运行时错误如何解决? 引用添加:在回答中引用参考段落时,末尾加[^n]。 最终回答用中文。</think>### 解决Node.js运行时错误:GLIBCXX_3.4.21 not found 当您升级gcc后运行Node.js时出现错误 `/usr/lib64/libstdc++.so.6: version &#39;GLIBCXX_3.4.21&#39; not found`,这是因为新gcc生成的动态库未正确替换系统中的旧版本库。Node.js依赖C++ 11特性(需要gcc 4.8+),但系统仍链接到旧版libstdc++.so.6文件,缺少所需符号[^3][^1]。以下是逐步解决方案,操作需root权限,请谨慎执行。 #### 问题原因分析 - 升级gcc(如v5.2.0)后,新动态库(如libstdc++.so.6)默认安装在`/usr/local/lib64`,但系统路径`/usr/lib64/`仍指向旧库。 - Node.js运行时需GLIBCXX_3.4.15及以上版本,旧库不兼容[^3][^4]。 - 验证命令: ```bash strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX ``` 输出中若缺少`GLIBCXX_3.4.21`,则确认问题。 #### 解决方案步骤 1. **定位新版本动态库** 查找新gcc安装的库文件: ```bash find / -name "libstdc++.so*" 2>/dev/null ``` 通常路径为`/usr/local/lib64/libstdc++.so.6.0.21`(以gcc 5.2.0为例)[^3][^4]。 2. **替换系统库文件** 将新库复制到系统路径并更新链接: ```bash # 备份旧库(可选但推荐) sudo cp /usr/lib64/libstdc++.so.6 /usr/lib64/libstdc++.so.6.bak # 复制新库到系统路径 sudo cp /path/to/new/libstdc++.so.6.0.21 /usr/lib64/ # 删除旧符号链接并创建新链接 sudo rm /usr/lib64/libstdc++.so.6 sudo ln -s /usr/lib64/libstdc++.so.6.0.21 /usr/lib64/libstdc++.so.6 ``` 3. **更新动态链接器缓存** 运行`ldconfig`使更改生效: ```bash sudo ldconfig ``` 4. **验证修复结果** - 再次检查库版本: ```bash strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX ``` 应输出包含`GLIBCXX_3.4.21`的行。 - 测试Node.js: ```bash node -v ``` 若正常显示版本号(如v4.2.1),则问题解决[^1][^3]。 #### 注意事项 - **风险提示**:错误替换库可能导致系统不稳定。建议在操作前备份关键数据。 - **预防措施**:升级gcc时,使用`sudo make install`确保库文件正确部署到系统路径。 - **替代方案**:若问题持续,考虑通过包管理器(如yum或apt)安装预编译的Node.js版本,避免手动编译依赖[^2]。 此方案基于gcc升级后动态库未更新的常见问题,成功率较高[^3][^4]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值