开发者

Cannot find boost library

This is a very basic question, I only post because I've spent already some time into it. This is what I've done so far:

  1. Downloaded and compiled the boost library:

    sudo ./bootstrap.sh and sudo ./bjam install

    This way it was installed into /usr/local/lib.

  2. In my source code I've added only:

    #include <boost/asio.hpp>
    using boost::asio::ip::tcp
    
  3. I compile it with:

    g++ -I/usr/lib/jvm/java-6-openjdk/include -L/usr/local/lib -fPIC -lboost_system -shared -o libagent.so agent.cpp

  4. However, ldd -d ./libagent.so gives me:

    libboost_system.so.1.46.1 => not found

  5. But there is no error thrown, when using the -lboost_system and ls /usr/local/lib gets me among other things:

    libboost_system.so

    开发者_运维百科 libboost_system.a

What am I missing?


Did the ./bjam install tool also run the ldconfig(8) tool? ldconfig(8) needs to be run after new libraries are installed to update the caches used by ld.so(8) at program execution time.


You should compile it with:

g++ -I/usr/lib/jvm/java-6-openjdk/include -L/usr/local/lib -Wl,-rpath,/usr/local/lib -fPIC -lboost_system -shared -o libagent.so agent.cpp

This makes it look for the boost library in /usr/local/lib at runtime, the -L option only makes it look in /usr/local/lib at compile time.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜