Debian 10系统缺失GLIBCXX_3.4.26,如何安装?
在Debian 10中安装GLIBCXX_3.4.26的方法
Debian 10(Buster)默认搭载的libstdc++6来自gcc 8.3版本,最高仅支持到GLIBCXX_3.4.25。要获取GLIBCXX_3.4.26符号,需要升级到gcc 9或更高版本——这类版本的libstdc++才会包含该符号。
方法1:从Backports仓库安装(推荐)
Debian官方的Buster Backports仓库提供了gcc 9及对应版本的libstdc++6,操作步骤如下:
- 若未添加Backports仓库,编辑
/etc/apt/sources.list文件,添加以下内容:deb http://deb.debian.org/debian buster-backports main - 更新软件包索引:
sudo apt update - 从Backports安装新版libstdc++6:
sudo apt -t buster-backports install libstdc++6 - 验证安装结果:
重新执行命令检查符号:
若输出strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX_3.4.26GLIBCXX_3.4.26,说明安装成功。
方法2:手动编译gcc(适合自定义场景)
如果Backports的版本无法满足需求,可手动编译gcc 9及以上版本:
- 先安装编译依赖:
sudo apt install build-essential libgmp-dev libmpfr-dev libmpc-dev - 下载gcc源码(以9.4.0版本为例)并解压:
wget https://ftp.gnu.org/gnu/gcc/gcc-9.4.0/gcc-9.4.0.tar.gz tar xzf gcc-9.4.0.tar.gz cd gcc-9.4.0 - 配置编译参数(指定独立安装目录,避免覆盖系统默认gcc):
./configure --prefix=/usr/local/gcc-9.4 --disable-multilib - 编译并安装:
make -j$(nproc) sudo make install - 加载新库:
临时运行程序时指定库路径:
若要全局生效,可将LD_LIBRARY_PATH=/usr/local/gcc-9.4/lib64 ./your_program/usr/local/gcc-9.4/lib64添加到/etc/ld.so.conf.d/gcc-9.conf,再执行sudo ldconfig——注意:全局替换可能影响系统稳定性,需谨慎操作。
方法3:单独复制libstdc++.so.6文件(临时应急)
如果仅单个程序需要该符号,可从已安装gcc 9+的系统或编译产物中提取libstdc++.so.6文件,放到程序所在目录,运行时通过LD_LIBRARY_PATH指定加载路径。但这种方法不建议全局使用,容易引发依赖冲突。
内容的提问来源于stack exchange,提问作者Girjesh Singh
相关产品推荐
相关产品推荐

