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

本文提供了解决32位系统中libstdc++.so.6版本缺失的问题解决方案,包括下载新版本库、解压、建立软连接等步骤,并介绍了针对不同操作系统的解决方法。

32位系统或程序通常为以下错误:
/usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.15’ not found

以下网址提供32位系统的解决方法:
http://www.cnblogs.com/yingsi/p/3290958.html
主要内容如下:这里转帖过来防止以后网址改变找不到了。

下载新版本,地址: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已经有了!

而这里需要的是lib64,CentOS 64位操作系统
解决方法:
经过一番搜索,终于在以下站点找到可下载的rpm安装包。
http://rpmfind.net/linux/rpm2html/search.php?query=libstdc%2B%2B.so.6(GLIBCXX_3.4.15)&system=&arch=

我下载的是针对 Mandriva 操作系统的版本
ftp://rpmfind.net/linux/Mandriva/official/2011/x86_64/media/main/release/lib64stdc++6-4.6.1-2-mdv2011.0.x86_64.rpm

优快云资源下载地址:
http://download.youkuaiyun.com/detail/testcs_dn/8655589

下载:
wget ftp://rpmfind.net/linux/Mandriva/official/2011/x86_64/media/main/release/lib64stdc++6-4.6.1-2-mdv2011.0.x86_64.rpm

安装:
rpm -ivh lib64stdc++6-4.6.1-2-mdv2011.0.x86_64.rpm

有冲突?:
file xxx from install of xxx conflicts with file from xxx

<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]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值