“'CXXABI_1.3.8' not found” in tensorflow-g

2020-02-09 03:31发布

问题:

I have re-installed Anaconda2. And I got the following error when 'python -c 'import tensorflow''

ImportError: /home/jj/anaconda2/bin/../lib/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by /home/jj/anaconda2/lib/python2.7/site-packages/tensorflow/python/_pywrap_tensorflow.so)

environment

  • CUDA8.0
  • cuDNN 5.1
  • gcc 5.4.1
  • tensorflow r0.10
  • Anaconda2 : 4.2

the following is in bashrc file

  • export PATH="/home/jj/anaconda2/bin:$PATH"
  • export CUDA_HOME=/usr/local/cuda-8.0
  • export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
  • export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

回答1:

Seems to be a problem with Anaconda 4.*

You can either update the libgcc package to match your local version

conda update libgcc

but this will require downgrading "due to dependency conflicts" next time you update anaconda.

OR you can mask the anaconda libstdc++ so that your system's libstdc++ is used

cd ~/anaconda2/lib
mv libstdc++.so libstdc++.so.bkp
mv libstdc++.so.6 libstdc++.so.6.bkp

You can further (optionally) create a softlink inside the anaconda lib directly

ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 libstdc++.so.6

These worked for me for the same problem for built-from-source (non-gpu support) tensorflow, Ubuntu 16.04, Anaconda 4.2.0.

Sources: Similar problem to Building TensorFlow from source on Ubuntu 16.04 w/ GPU: `GLIBCXX_3.4.20' not found which also points back to this.



回答2:

I solved this problem by copying the libstdc++.so.6 file which contains version CXXABI_1.3.8.

Try run the following search command first:

$ strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep CXXABI_1.3.8

If it returns CXXABI_1.3.8. Then you can do the copying.

$ cp /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /home/jj/anaconda2/bin/../lib/libstdc++.so.6



回答3:

I ended up here looking for my problem, same error message but different app.

My app gave the error with /lib64/libstdc++.so.6 which was pointing to /lib64/libstdc++.so.6.0.19

After reading other webs, I kind of figured out I had to "replace" to where my /lib64/libstdc++.so.6 was pointing out and a newer version was located in my conda environment... so:

(sudo) rm /system/path/to/lib/libstdc++.so.6
(sudo) ln -s /path/to/conda/lib/libstdc++.so.6.0.26  /system/path/to/lib/libstdc++.so.6

So I guess it's not the best solution but as user finally get the app works.

Also I read here, this:

Set the LD_LIBRARY_PATH before you run TF, so this lib would only be effective in this shell.

Hope this help.



回答4:

Typing

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/jj/anaconda2/lib/

in the terminal, will solve the problem.