【问题标题】:Boost librairies not found but compilation is ok未找到 Boost 库,但编译正常
【发布时间】:2013-08-20 02:14:39
【问题描述】:

我正在尝试在 c++ 中使用来自 boost 的文件系统

使用时编译好像没问题

“c++ -c Analyse.c -o Analyse.o -g -W -Wall -L/usr/local/lib -lboost_filesystem -lboost_system”

但是在尝试执行我的代码时出现以下错误:

“加载共享库时出错:libboost_filesystem.so.1.54.0: 无法打开共享对象文件:没有这样的文件或目录”,a find / -iname "libboost_system.so.1.54.0

我在安装 boost 时遇到了一些问题(我首先安装了 1.49,然后安装了 1.54)所以我想知道 2 版本之间是否存在冲突?

P.S:顺便说一句,"find / -iname "libboost_system.so.1.54.0" 给了我以下信息

/usr/include/boost/boost_1_54_0/bin.v2/libs/system/build/gcc-4.7/release/threading-multi/libboost_system.so.1.54.0

/usr/local/lib/libboost_system.so.1.54.0

【问题讨论】:

  • 当我链接 boost 库时,我通常只链接库路径,即 /usr/local/lib。我没有指定库名称。 BTW boost 1.49 和 boost 1.54 应该在单独的文件夹中。

标签: c++ boost boost-filesystem


【解决方案1】:

在执行前尝试添加目录。例如: LD_LIBRARY_PATH="/usr/local/lib/" ./Analyse.o

【讨论】:

    【解决方案2】:

    我最近在全新安装 boost 后遇到了这个问题。就我而言,解决方案是简单地运行

    sudo ldconfig
    

    解释是系统保留了已安装共享库的缓存(位于/usr/lib/lib/usr/local/lib)。更改库或添加新库时,在运行 ldconfig 之前不会更新缓存。更多详情请见ldconfig manual

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-08-11
      • 1970-01-01
      • 2013-07-17
      • 1970-01-01
      • 1970-01-01
      • 2018-06-04
      • 2018-04-18
      相关资源
      最近更新 更多