【问题标题】:Cannot find boost library找不到提升库
【发布时间】:2011-03-24 09:19:30
【问题描述】:

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

  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 =&gt; not found

  5. 但是当使用-lboost_systemls /usr/local/lib 时没有抛出错误:

    libboost_system.so
    libboost_system.a

我错过了什么?

【问题讨论】:

标签: c++ linux unix boost


【解决方案1】:

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

【讨论】:

  • 这个。您需要运行(以 root 身份)ldconfig -u
  • 并且 /usr/local/lib 应该在 ldconfig 的路径列表中。
  • 谢谢,运行 sudo ldconfig -n /usr/local/lib 解决了这个问题。
【解决方案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 中查找。

【讨论】:

    猜你喜欢
    • 2017-12-13
    • 2020-07-27
    • 2012-10-24
    • 1970-01-01
    • 1970-01-01
    • 2013-04-06
    • 2016-04-18
    • 2019-12-18
    • 1970-01-01
    相关资源
    最近更新 更多