【问题标题】:LD_LIBRARY_PATH not workingLD_LIBRARY_PATH 不工作
【发布时间】:2014-04-22 23:00:41
【问题描述】:

我的一个二进制文件需要libfoo.so(位于/dir/libfoo),我不知道如何通过设置环境变量来链接它。我尝试了以下两种解决方案:

export LD_FLAG='-L/dir/libfoo/' export LD_LIBRARY_PATH='-L/dir/libfoo/'

但是当我运行 ldd ./mybin 时,我会在找到的其他库中看到 libfoo.so.0 => not found

但是,当我使用这个时,我可以成功链接:/lib/ld-linux.so.2 --library-path /dir/libfoo ./mybin

我正在运行 Ubuntu 13.10 服务器 x86

我在这里做错了什么?

【问题讨论】:

    标签: linux unix linker linker-errors dynamic-linking


    【解决方案1】:

    -L是一个gcc标志,gcc不参与这个过程。做吧

    export LD_LIBRARY_PATH='/dir/libfoo/'
    

    【讨论】:

    • 感谢您提到 -L 是 gcc 标志 - 我正在尝试运行程序而不是编译它:)
    【解决方案2】:

    您已将 -L 标志传递给 LD_LIBRARY_PATH 这是错误的,而是从 LD_LIBRARY_PATH 中删除 -L

    export LD_LIBRARY_PATH=/dir/libfoo/
    

    另请参阅http://man7.org/linux/man-pages/man8/ld.so.8.html 了解链接器/加载器规范

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-24
      • 1970-01-01
      相关资源
      最近更新 更多