【问题标题】:Can't link libboost solution on running time无法在运行时链接 libboost 解决方案
【发布时间】:2017-03-28 16:27:19
【问题描述】:

我在/usr/local/boost_1_55_0 下安装了 boost_1_55_0,在我的makefile 中我将链接标志设置为:

CC = g++
CFLAGS = -I ./ -I/usr/local/boost_1_55_0 -w -std=c++11
LFLAGS = -L./ -lm -lpthread -L/usr/local/boost_1_55_0/lib -lboost_regex

我在编译期间什么都没遇到,但我得到了:

./$(exec): 加载共享库时出错: libboost_regex.so.1.55.0:无法打开共享对象文件:没有这样的文件 或目录

我很确定我清理了所有旧文件并再次编译,我还授予了sudo chmod -R +x /usr/local/boost_1_55_0 读取usr/local/boost_1_55_0 中文件的权限,以防万一我禁止读取。但是,我仍然收到此错误。我还尝试将boost_1_55_0 移动到/usr/lib/ 中,但它也不起作用。

我也读过这个问题:Compiling issue with boost 并在这个问题下尝试了两种解决方案,但它们都不适合我。有人能找出不同的解决方案吗?

【问题讨论】:

    标签: c++ c++11 boost


    【解决方案1】:

    正如错误所暗示的,您的可执行文件无法找到共享库。将 boost 构建过程生成的 .so 文件(或所有文件,如果您想安全的话)添加到生成程序可执行文件的同一目录中,然后再次尝试运行该程序。

    【讨论】:

    • 这实际上没有帮助。
    【解决方案2】:

    我手动清理了可执行文件并再次编译它,它以某种方式解决了我的问题。我猜我的系统中一定有一些配置搞砸了,以至于可执行文件会隐形链接到一些过时的目录并导致这个问题。

    【讨论】:

      猜你喜欢
      • 2012-05-08
      • 1970-01-01
      • 1970-01-01
      • 2023-03-10
      • 2019-10-05
      • 1970-01-01
      • 1970-01-01
      • 2011-02-01
      • 2023-03-31
      相关资源
      最近更新 更多