我有我的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)在二进制文件中包含运行时搜索路径信息。
请注意,发行版维护者通常不赞成这样做,因为应该有一个单一的系统范围的库搜索路径,以便及早发现冲突。