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



我有我的soft.c,我成功地编译了它并将其链接到/usr/lib/myLib.so

一切都很好,除了它不是我想要的,我想管理考虑链接的最终路径,换句话说,我希望 GCC 考虑库/usr/lib/myLib.so但我也希望最终链接是相对路径,有点像../myLib.so

通常的情况是

链接到 -> /usr/lib/myLib.so./soft

我要

链接到 -> ../myLib.so./soft

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

如何实现呢?

谢谢。

您可以使用

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

请注意,发行版维护者通常不赞成这样做,因为应该有一个单一的系统范围的库搜索路径,以便及早发现冲突。

最新更新