【问题标题】:Boost library missing at runtime (Can compile. Can't run)运行时缺少 Boost 库(可以编译。无法运行)
【发布时间】:2015-05-27 10:39:37
【问题描述】:

这是一个入门级的问题,但我似乎找不到任何相关的答案。

我可以使用以下命令编译this没问题:

g++ client.cpp -o client -lboost_system -lpthread

当我尝试运行程序时,出现以下错误:

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

此文件存在:/usr/local/lib/libboost_system.so

我在这里做错了什么?

【问题讨论】:

  • 安装了错误的版本? libboost_system.so.1.58.0 指定版本,而您的 /usr/local/lib/ 文件没有。
  • 你编译了client,但是你运行了./cilent。我也会检查这个

标签: c++ boost shared-libraries


【解决方案1】:

您必须设置找到共享对象的路径,命令 LD_LIBRARY_PATH=path where shared object is 将执行此操作。我猜文件在某个地方,否则链接会失败。

【讨论】:

    【解决方案2】:

    应该是链接错误,

    尝试编译它并首先创建.o文件。

    g++ -C .cpp // 这里你需要提到库中的包含。 -我

    然后创建可执行文件,

    g++ -O // 这里需要提一下库的路径。 -l

    如果您的 prog 是正确的,它将创建 exe,否则它将向您显示错误。如果出现链接错误,请尝试在程序中正确包含 .h 和 lib 路径。

    【讨论】:

      【解决方案3】:

      我没有机会测试你的答案。升级到 ubuntu 15.04,同时解决另一个不相关的问题,该问题恰好也解决了这个问题。

      还是谢谢。

      【讨论】:

        猜你喜欢
        • 2018-10-28
        • 1970-01-01
        • 1970-01-01
        • 2013-12-04
        • 2016-04-16
        • 2012-04-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多