问题描述
问题定位:通过pycharm的错误定位返回,查看到时torch_geometric
引入sicpy
时版本不匹配,根据报错,是没有GLIBCXX_3.4.26
排故
1、在/usr/lib/x86_64-linux-gnu/libstdc++.so.6
中查看所有GLIBCXX
的版本
输入代码:
strings /usr/lib/x86_64-linux-gnu/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_3.4.18
GLIBCXX_3.4.19
GLIBCXX_3.4.20
GLIBCXX_3.4.21
GLIBCXX_3.4.22
GLIBCXX_3.4.23
GLIBCXX_3.4.24
GLIBCXX_3.4.25
GLIBCXX_DEBUG_MESSAGE_LENGT
最高版本是3.4.25,没有相对应的3.4.26版本
2、查看当前系统中的其他同类型的文件,找到一个版本比较高的,然后建议一个链接指向这里
sudo find / -name 'libstdc++.so.6*'
输出:
/home/hero/anaconda3/pkgs/libstdcxx-ng-9.3.0-hd4cf53a_17/lib/libstdc++.so.6.0.28
/home/hero/anaconda3/pkgs/libstdcxx-ng-9.3.0-hd4cf53a_17/lib/libstdc++.so.6
/home/hero/anaconda3/pkgs/libstdcxx-ng-9.1.0-hdf63c60_0/lib/libstdc++.so.6.0.26
/home/hero/anaconda3/pkgs/libstdcxx-ng-9.1.0-hdf63c60_0/lib/libstdc++.so.6
/home/hero/anaconda3/pkgs/libstdcxx-ng-9.1.0-hdf63c60_0/x86_64-conda_cos6-linux-gnu/sysroot/lib/libstdc++.so.6.0.26
/home/hero/anaconda3/pkgs/libstdcxx-ng-9.1.0-hdf63c60_0/x86_64-conda_cos6-linux-gnu/sysroot/lib/libstdc++.so.6
/home/hero/anaconda3/pkgs/libgcc-7.2.0-h69d50b8_2/lib/libstdc++.so.6.0.21
/home/hero/anaconda3/pkgs/libstdcxx-ng-11.2.0-he4da1e4_16/lib/libstdc++.so.6.0.29
/home/hero/anaconda3/pkgs/libstdcxx-ng-11.2.0-he4da1e4_16/lib/libstdc++.so.6
/home/hero/anaconda3/lib/libstdc++.so.6.0.26
/home/hero/anaconda3/lib/libstdc++.so.6
/home/hero/anaconda3/envs/GNN/lib/libstdc++.so.6.0.29(选择这个高的版本查看)
/home/hero/anaconda3/envs/GNN/lib/libstdc++.so.6
/home/hero/anaconda3/envs/histoqc/lib/libstdc++.so.6.0.28
/home/hero/anaconda3/envs/histoqc/lib/libstdc++.so.6
/home/hero/anaconda3/envs/athena/lib/libstdc++.so.6.0.28
使用同样的方法查看其是否包含所需要的版本
strings /home/hero/anaconda3/envs/GNN/lib/libstdc++.so.6.0.29|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_3.4.18
GLIBCXX_3.4.19
GLIBCXX_3.4.20
GLIBCXX_3.4.21
GLIBCXX_3.4.22
GLIBCXX_3.4.23
GLIBCXX_3.4.24
GLIBCXX_3.4.25
GLIBCXX_3.4.26
GLIBCXX_3.4.27
GLIBCXX_3.4.28
GLIBCXX_3.4.29
里面确实有我们需要的版本3.4.26
建立新的连接到这个文件上
1) 复制到指定目录
cp /home/hero/anaconda3/envs/GNN/lib/libstdc++.so.6.0.29 /usr/lib/x86_64-linux-gnu/
2) 删除之前的链接
sudo rm /usr/lib/x86_64-linux-gnu/libstdc++.so.6
3)创建新的链接
sudo ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.29 /usr/lib/x86_64-linux-gnu/libstdc++.so.6