使用GCC编译并重新定位链接库

时间:2012-11-16 17:13:32

标签: gcc linker

我有soft.c并成功编译并将其与/usr/lib/myLib.so相关联。

一切都没关系,除了它不是我正在寻找的事实,我想管理为链接考虑的最终路径,换句话说我希望GCC考虑库/usr/lib/myLib.so但我也希望最终链接成为相对路径,有点像../myLib.so

通常情况是

./soft与 - >相关联/usr/lib/myLib.so

我想要

./soft与 - >相关联../myLib.so

很明显,我还需要GCC来管理任何交叉引用的库,例如,如果/usr/lib/myLib.so链接到其他库,我希望所有涉及的库都在相对路径中重新定位,以便../myLib.so可以完全工作从相对路径。

如何实现?

感谢。

1 个答案:

答案 0 :(得分:1)

您可以使用链接器的-rpath选项在二进制文件中包含运行时搜索路径信息(将传递给gcc作为-Wl,-rpath,

请注意,这通常不受分发维护者的欢迎,因为应该有一个系统范围的库搜索路径,因此可以及早发现冲突。