树莓派Bullseye中解决‘ImportError: libstdc++.so.6缺失GLIBCXX_3.4.29’问题
解决GLIBCXX_3.4.29缺失问题的方案
方法一:通过系统包管理器升级libstdc++6
- 先查看当前系统已支持的GLIBCXX版本:
strings /usr/lib/arm-linux-gnueabihf/libstdc++.so.6 | grep GLIBCXX - 执行系统包升级,优先更新libstdc++6:
sudo apt update && sudo apt install --only-upgrade libstdc++6 - 若上述操作后仍无GLIBCXX_3.4.29,可尝试从测试源获取(注意:测试源稳定性不可控,操作前建议备份系统):
echo "deb http://deb.debian.org/debian testing main" | sudo tee /etc/apt/sources.list.d/testing.list sudo apt update sudo apt -t testing install libstdc++6 # 安装完成后注释测试源,避免后续系统意外升级 sudo sed -i 's/^deb/#deb/' /etc/apt/sources.list.d/testing.list sudo apt update
方法二:替换适配的libstdc++.so.6文件
- 找到适配树莓派的TensorFlow Lite预编译包,解压后提取其中的
libstdc++.so.6文件 - 备份原文件后替换(替换前确认文件权限):
sudo cp /usr/lib/arm-linux-gnueabihf/libstdc++.so.6 /usr/lib/arm-linux-gnueabihf/libstdc++.so.6.bak sudo cp /path/to/extracted/libstdc++.so.6 /usr/lib/arm-linux-gnueabihf/ sudo ldconfig
方法三:手动编译安装gcc(适合具备编译基础的用户)
GLIBCXX_3.4.29由gcc 11版本引入,可通过编译gcc获取对应库:
- 安装编译依赖:
sudo apt install build-essential flex bison libgmp3-dev libmpfr-dev libmpc-dev - 下载并编译gcc 11.x版本(树莓派编译耗时较长,建议保持电源稳定):
wget https://ftp.gnu.org/gnu/gcc/gcc-11.4.0/gcc-11.4.0.tar.gz tar xzf gcc-11.4.0.tar.gz cd gcc-11.4.0 ./configure --prefix=/usr/local --enable-languages=c,c++ --disable-multilib make -j$(nproc) sudo make install - 更新系统库链接:
sudo ldconfig
内容的提问来源于stack exchange,提问作者Kasun Thushara
相关产品推荐
相关产品推荐

