weixin_51536120 2025-09-01 23:15 采纳率: 0%
浏览 26

在wsl的linux的系统中一直出现错误

ImportError: /lib/x86_64-linux-gnu/libstdc++.so.6: version `CXXABI_1.3.15' not found (required by /home/shanjin/anaconda3/envs/fmnet/lib/python3.8/site-packages/../../././libtbb.so.12)

(fmnet) root@DESKTOP-F6JRAAV:/mnt/e/FMNet-main/FMNet# 在wsl的linux的系统中在运行代码的时候一直出现ImportError: /lib/x86_64-linux-gnu/libstdc++.so.6: version `CXXABI_1.3.15' not found (required by /home/shanjin/anaconda3/envs/fmnet/lib/python3.8/site-packages/../../././libtbb.so.12)这一个错误、如何进行解决

img

  • 写回答

4条回答 默认 最新

  • 檀越@新空间 2025-09-01 23:22
    关注

    晚上好🌙🌙🌙
    本答案参考通义千问

    这个错误信息表明你的系统缺少或版本过低的 libstdc++ 库,具体是 CXXABI_1.3.15 这个符号。这是由于你使用的某些库(如 libtbb.so.12)需要较新的 libstdc++ 版本,而当前系统中安装的版本不满足要求。


    ✅ 解决方案:

    1. 更新系统库

    首先尝试更新系统包,确保所有依赖项是最新的:

    sudo apt update && sudo apt upgrade -y
    

    这可能修复一些兼容性问题,但有时还不够。


    2. 安装或升级 libstdc++

    方法一:使用 apt 安装最新版本

    sudo apt install libstdc++6
    

    如果此命令没有提供足够新版本,可以尝试以下方法。

    方法二:手动下载并安装 libstdc++

    你可以从 Ubuntu 的官方仓库 下载对应的 .deb 文件,并手动安装。

    例如,下载 libstdc++6 的最新版本(如 libstdc++6_10.3.0-1ubuntu1~20.04_amd64.deb):

    wget http://archive.ubuntu.com/ubuntu/pool/main/g/gcc-9/libstdc++6_10.3.0-1ubuntu1~20.04_amd64.deb
    sudo dpkg -i libstdc++6_10.3.0-1ubuntu1~20.04_amd64.deb
    

    注意: 确保选择与你的 Ubuntu 版本匹配的版本。


    3. 创建软链接(临时解决方案)

    如果无法升级,可以尝试创建软链接来指向一个更高版本的 libstdc++.so.6

    假设你已经安装了某个高版本的 libstdc++.so.6(比如 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.28),可以这样做:

    sudo ln -sf /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.28 /usr/lib/x86_64-linux-gnu/libstdc++.so.6
    

    注意: 此操作可能会导致其他程序出错,请谨慎操作。


    4. 使用 conda 环境中的 libstdc++

    如果你在使用 Anaconda 环境(如 fmnet),可以尝试在该环境中安装或更新 libstdc++

    conda install -c conda-forge libstdcxx-ng
    

    或者:

    conda install -c conda-forge gcc=11
    

    这将为你的环境提供更现代的 C++ 标准库支持。


    5. 检查是否为 WSL 兼容性问题

    WSL 中有些库可能与原生 Linux 不完全兼容。你可以尝试:

    • 重启 WSL
    wsl --shutdown
    

    然后重新启动 WSL。

    • 使用 WSL2:确保你正在使用 WSL2 而不是 WSL1,因为 WSL2 更接近原生 Linux 环境。

    ✅ 总结

    | 步骤 | 操作 | |------|------| | 1 | 更新系统包:sudo apt update && sudo apt upgrade -y | | 2 | 安装或升级 libstdc++6sudo apt install libstdc++6 | | 3 | 手动下载并安装新版 libstdc++(如 .deb 包) | | 4 | 创建软链接(如 ln -sf ...) | | 5 | 在 Conda 环境中安装 libstdcxx-nggcc=11 | | 6 | 检查 WSL 设置,确保使用 WSL2 并重启 |


    🔧 如果仍然失败,建议:

    • 查看 ldd 输出以确认缺失的库:
    ldd /home/shanjin/anaconda3/envs/fmnet/lib/python3.8/site-packages/../../././libtbb.so.12
    
    • 使用 strings 命令查看所需符号:
    strings /home/shanjin/anaconda3/envs/fmnet/lib/python3.8/site-packages/../../././libtbb.so.12 | grep CXXABI_1.3.15
    

    如果你能提供具体的系统版本(如 Ubuntu 20.04、22.04 等),我可以给出更精确的解决方案。

    评论

报告相同问题?

问题事件

  • 创建了问题 9月1日