error while loading shared libraries: libboost_system.so.1.45.0: cannot open shared object file: No such file or directory

前端 未结 3 1972
粉色の甜心
粉色の甜心 2020-12-05 04:33

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         


        
3条回答
  •  [愿得一人]
    2020-12-05 05:34

    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
    

提交回复
热议问题