## Background

I installed pycuda and was trying to run a file and error like this occured

line 62, in <module>
from pycuda._driver import *  # noqa
ImportError: /lib64/libstdc++.so.6: version GLIBCXX_3.4.21' not found (required by /data/project/venv38/lib/python3.8/site-packages/pycuda-2020.1-py3.8-linux-x86_64.egg/pycuda/_driver.cpython-38-x86_64-linux-gnu.so)

## Solution

After googling, I found this post saying that this was due to lower version of libstdc++.so.6

originally my /lib64/libstdc++.so.6 was pointing to /lib64/libstdc++.so.6.0.19.

But the post suggested to use a version higher. First, I needed to find if I had any versions higher than that.

$sudo find / -name "libstdc++.so.6*"  this command will list a lot of search results. among them, I found one that had a higher version. /var/lib/docker/overlay2/fc438c104db5df8fd007edc98975630eea749746c211d55a2838cc300a40a533/diff/usr/lib/x86_64-linux-gnu/libstdc++.so.6 /var/lib/docker/overlay2/fc438c104db5df8fd007edc98975630eea749746c211d55a2838cc300a40a533/diff/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.28 /var/lib/docker/overlay2/fc438c104db5df8fd007edc98975630eea749746c211d55a2838cc300a40a533/diff/usr/share/gdb/auto-load/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.28-gdb.py /usr/lib64/libstdc++.so.6 /usr/lib64/libstdc++.so.6.0.19 /usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.py /usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.pyc /usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.pyo /usr/local/lib64/libstdc++.so.6.0.28 << this one! /usr/local/lib64/libstdc++.so.6.0.21 /usr/local/lib64/libstdc++.so.6 /usr/local/lib64/libstdc++.so.6.0.28-gdb.py /data/chadrick/install/gcc/gcc-9.4.0/prev-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.28 /data/chadrick/install/gcc/gcc-9.4.0/prev-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6 /data/chadrick/install/gcc/gcc-9.4.0/stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.28 /data/chadrick/install/gcc/gcc-9.4.0/stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6 so I changed the symbolic link to point this one $ sudo rm /lib64/libstdc++.so.6
\$ sudo ln -s /usr/local/lib64/libstdc++.so.6.0.28  /lib64/libstdc++.so.6`

after doing this, the error did not appear.

Unfortunately I don’t know why version 6.0.28 solves this error and I was lucky enough to have a higher version lying around somewhere. If you don’t have any higher versions, I guess you will have to find a way to get one first.

Categories: error fix