LD_LIBRARY_PATH不起作用

时间:2014-04-22 23:00:42

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

我的其中一个二进制文件需要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

我在这里做错了什么?

2 个答案:

答案 0 :(得分:2)

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

export LD_LIBRARY_PATH='/dir/libfoo/'

答案 1 :(得分: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以获取链接器/加载器规范