赞
踩
我的环境是cuda11.3+python3.9+pytoch1.10
问题如图:
图1 bug示意图
在网上找了很多答案,要么就是没说清的,要么就是有问题的,我在这里总结下我的步骤。
第一步:使用如下命令查看是否缺失文件(一般来讲肯定是缺失的)
strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX
图2 查看文件是否缺失
第二步:使用如下命令查看当前系统中是否有其他同类型的文件,找一个版本较高的。
sudo find / -name "libstdc++.so.6*"(注意这个命令需要权限,我就直接退出我的账号进入管理员账户弄了)
如图,可以看到有更高版本的同类型文件
图3 查看是否有更高版本的文件名
然后使用如下命令查看这个文件中是否包含需要的版本。
strings /data1/liupan/anaconda3/envs/DPHSIR/lib/libstdc++.so.6.0.30 | grep GLIBCXX(DPHSIR是我创建的conda环境名称,路径不要选错),结果如图。
图4 观察是否有所需版本
如图x所示,里面包含有我们需要的版本。然后进行如下操作
使用如下命令复制文件。cp /data1/liupan/anaconda3/envs/DPHSIR/lib/libstdc++.so.6.0.30 /lib/x86_64-linux-gnu/
这里面有前后两个路径需要注意,cp命令的第一个参数为图3中标出的路径+文件名,第二个参数为图1中标出的路径,不要选错了,网上有很多解决方法并没有说清这两个路径。两个路径中间有一个空格!!
(注意在进行这一步时提示我权限不够,于是我 sudo -i 直接进入到根用户上进行操作,cd ../..这个命令为跳转到根目录)
图5 进入根用户上操作,并复制文件到自己项目路径
2. 删除原有路径上的连接。
使用如下命令删除原有路径上的连接。sudo rm /lib/x86_64-linux-gnu/libstdc++.so.6
(这个路径仍然是图1中标出的路径,只不过加上了旧的文件名)
3. 建立与新文件的连接。
最后一步是创建新连接。命令为
sudo ln /lib/x86_64-linux-gnu/libstdc++.so.6.0.30 /lib/x86_64-linux-gnu/libstdc++.so.6
(仍然两个路径,第一个参数为自己项目的路径+新文件名,第二个参数为自己项目上的路径+旧文件名)
至此,问题解决!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。