将静态库包含到动态库中

时间:2015-06-22 12:48:55

标签: linux shared-libraries static-libraries

我们有一个动态库,它是在已停产的工具(Borland Kylix)中开发的,因此我们必须在Red Hat 7.2安装中完成。到目前为止,我们在后续版本的Linux中加载此库(libX.so)时没有任何问题。但是,在最新版本中,如Fedora 21,我们在尝试使用dlopen加载库时会收到分段错误信号。我们尝试了一些替代方案,其中之一是将旧的静态库链接到此共享库中。

我们知道这不是最好的方法,我们应该相信linux内核及其系统库提供的向后兼容性,但在我们的情况下(除非我们做错了),它不起作用。

那么,我们如何将系统库静态链接到现有的共享库中呢?我们需要使用已编译的libX.so和"插件"进入静态系统库,如libc.a。我们已经使用Kylix链接工具(ilink)完成了它,但它生成了一个无效的库。因此,我们希望使用ldgcc来选择此libX.so并生成包含静态库的另一个libX.so

已编辑:包含gdb输出。

Program recevied signal SIGSEV, Segmentation Fault. 
0xb7fe7c72 in _dl_relocate_object () from /lib/ld-linux.so.2

0 个答案:

没有答案