找不到助推库

这是一个非常基本的问题,我只是张贴,因为我已经花了一些时间。 这是我迄今为止所做的:

  1. 下载并编译boost库:

    sudo ./bootstrap.shsudo ./bjam install

    这样它就被安装到/usr/local/lib

  2. 在我的源代码中,我只添加了:

     #include <boost/asio.hpp> using boost::asio::ip::tcp 
  3. 我编译它:

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

  4. 但是, ldd -d ./libagent.so给我:

    libboost_system.so.1.46.1 => not found

  5. 但是,在使用-lboost_systemls /usr/local/lib时,不会引发任何错误:

    libboost_system.so
    libboost_system.a

我错过了什么?

./bjam install工具是否也运行ldconfig(8)工具? 需要在安装新库之后运行ldconfig(8) ,以便在程序执行时更新ld.so(8)使用的高速缓存。

你应该用下面的代码编译它

 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 

这使得它在运行时查找/ usr / local / lib中的boost库,-L选项只能在编译时查看/ usr / local / lib。