找不到升级库

时间:2011-03-24 09:19:31

标签: c++ linux unix boost

这是一个非常基本的问题,我只发帖,因为我已经花了一些时间。这就是我到目前为止所做的:

  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

  6. 我错过了什么?

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:2)

你应该用:

编译它
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。