【发布时间】:2014-11-02 12:09:20
【问题描述】:
我有一个封闭源代码库,它位于一个名为 libfoo.so.1.2.3.4 的文件中。 objdump -p 表明它没有 SONAME 但确实有 RPATH=/usr/local/lib。
这是一种不好的做法吗?我应该尝试推动图书馆作者更改选项吗?
我应该如何链接我的代码?我不想更改任何系统范围的配置或污染只能由 root 写入的目录。
我创建了一个带有空main() 的虚拟a.c 文件,并尝试与gcc a.c -L. -lfoo 链接。它失败。如果我手动创建libfoo.so -> libfoo.1.2.3.4.so 符号链接并设置export LD_LIBRARY_PATH=$(pwd) 它可以工作并且ldd 说libfoo.so => {correct path}。
所以它有点工作,但这是推荐的方式吗?
【问题讨论】:
标签: gcc shared-libraries symlink elf