5

./a.out: error while loading shared libraries: libc++.so.1: cannot open shared object file: No such file or directory

even though:

$ echo $LD_LIBRARY_PATH
/home/exe/libcxx/lib:/home/exe/llvm/lib:/usr/local/lib
$ ls /usr/local/lib
libc++.so  libc++.so.1  libc++.so.1.0  python2.7  python3.2

I even copied it next to the executable, still no effect.

What am I doing wrong?

2 Answers 2

8

You might need to run sudo ldconfig /usr/local/lib to update the dynamic linker cache. Otherwise I think the system doesn't know which libraries are available from that directory. See man ldconfig for more info.

2
  • It works. Do I have to repeat it after every reboot?
    – nlognfan
    Jun 1, 2013 at 16:55
  • 1
    No, it should update /etc/ld.so.cache permanently. You should only need to re-run if you add or remove libraries in that directory again (normally apt-get handles this step for you for packaged libraries under /usr).
    – Paul
    Jun 1, 2013 at 16:57
0

The correct answer turns out to be that you should do export LD_LIBRARY_PATH = .. See https://stackoverflow.com/questions/1158091/defining-a-variable-with-or-without-export

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .