I am building a C++ executable on Linux. The executable links into some boost libraries.
This is the output when I attempt to run the binary:
root@yo
I just wanted to add a note for users of Ubuntu (and Debian, I guess):
these systems have a security "feature" that erases LD_LIBRARY_PATH
.
This doesn't work:
In either /etc/environemnt
or ~/.profile
or ~/.bash_profile
:
export LD_LIBRARY_PATH=/usr/local/boost_1_54_0/stage/lib:$LD_LIBRARY_PATH
It will work for ~/.bashrc
, but the path will be set just for this particular
interactive shell. This means that if you invoke make
from e.g. emacs
or eclipse
,
it won't work, unless you've launched emacs
from the shell and not from the launcher.
This is what worked for me:
echo -e "\n/usr/local/boost_1_54_0/stage/lib" | sudo tee -a /etc/ld.so.conf
sudo ldconfig