Shweta
Shweta

Reputation: 5456

Error loading shared libraries of boost

I am working on centos. I installed boost version 1.45.0 on my system. The programs are compiled correctly but whenever I type command to see output it gives following error:

./a.out: error while loading shared libraries: libboost_thread.so.1.45.0: cannot open shared object file: No such file or directory

Upvotes: 3

Views: 10535

Answers (3)

Sam Miller
Sam Miller

Reputation: 24174

In addition to the other answers, you can also set the DT_RPATH elf tag when linking your executable

-Wl,-rpath,/path/to/boost/libraries -L /path/to/boost/libraries -lboost_whatever

This way you don't have to remember to set your LD_LIBRARY_PATH if the libraries are installed in a non-standard location.

Upvotes: 6

wkl
wkl

Reputation: 79901

How did you install the boost libraries?

The problem you're likely having is that the linker can not find the libraries, and when you built your program, you had to manually specify additional library paths to search for libraries.

A quick fix you can do is to set LD_LIBRARY_PATH to include the directory where the boost thread library is:

export LD_LIBRARY_PATH=/path/to/boost/libs:$LD_LIBRARY_PATH

./runExecutable

Upvotes: 5

chrisaycock
chrisaycock

Reputation: 37930

You need to set the LD_LIBRARY_PATH environment variable to include the path to the Boost libraries (they're possibly in /usr/local/lib, etc).

In bash, this is simply

export LD_LIBRARY_PATH=/path/to/boost:$LD_LIBRARY_PATH

Upvotes: 3

Related Questions