我的其中一个二进制文件需要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
我在这里做错了什么?
答案 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以获取链接器/加载器规范